如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)

本篇文章给大家带来的内容是关于如何使用纯css实现一个圆环旋转错觉的动画效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

4212784137-5b8f1a308ea34_articlex.gif

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 10 个

子元素,每个

子元素内还有一个 子元素:

定义容器尺寸:

.container {    width: 17em;    height: 17em;    font-size: 16px;}

定义子元素的尺寸,和容器相同:

立即学习“前端免费学习笔记(深入)”;

.container {    position: relative;}.container div {    position: absolute;    width: inherit;    height: inherit;}

在子元素的正中画一个黄色的小方块:

.container div {    display: flex;    align-items: center;    justify-content: center;}.container span {    position: absolute;    width: 1em;    height: 1em;    background-color: yellow;}

增加让小方块左右移动的动画效果,动画时长还会在后面用到,所以定义成变量:

.container span {    --duration: 2s;    animation: move var(--duration) infinite;}@keyframes move {    0%, 100% {        left: calc(10% - 0.5em);    }    50% {        left: calc(90% - 0.5em);    }}

用贝赛尔曲线调整动画的时间函数,使小方块看起来就像在左右两侧跳来跳去:

.container span {    animation: move var(--duration) cubic-bezier(0.6, -0.3, 0.7, 0) infinite;}

增加小方块变形的动画,使它看起来有下蹲起跳的拟人效果:

.container span {    animation:         move var(--duration) cubic-bezier(0.6, -0.3, 0.7, 0) infinite,        morph var(--duration) ease-in-out infinite;}@keyframes morph {    0%, 50%, 100% {        transform: scale(0.75, 1);    }    25%, 75% {        transform: scale(1.5, 0.5);    }}

至此,完成了 1 个方块的动画。接下来设置多个方块的动画效果。

为子元素定义 CSS 下标变量:

.container div:nth-child(1) { --n: 1; }.container div:nth-child(2) { --n: 2; }.container div:nth-child(3) { --n: 3; }.container div:nth-child(4) { --n: 4; }.container div:nth-child(5) { --n: 5; }.container div:nth-child(6) { --n: 6; }.container div:nth-child(7) { --n: 7; }.container div:nth-child(8) { --n: 8; }.container div:nth-child(9) { --n: 9; }

旋转子元素,使小方块分布均匀地在容器的四周,围合成一个圆形:

.container p {    transform: rotate(calc(var(--n) * 40deg));}

设置动画延时,现在看起来就像是一群小方块贴着一个圆的内边线在旋转了(但实际上没有任何元素在做旋转运动,大脑感觉到的旋转是一种错觉):

.container span {    animation-delay: calc(var(--duration) / 9 * var(--n) * -1);}

最后,为小方块上色:

.container span {    background-color: hsl(calc(var(--n) * 80deg), 100%, 70%);}

大功告成!想要了解更多css知识,可以去创想鸟css教程栏目去学习一下。

相关推荐:

如何使用纯CSS实现太阳和地球和月亮的运转模型动画

如何使用纯CSS实现一个足球场的俯视图(附源码)

以上就是如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1611358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:15:33
下一篇 2025年12月24日 02:15:56

相关推荐

  • CSS常见兼容性问题及解决方法的总结

    本篇文章给大家带来的内容是关于CSS常见兼容性问题及解决方法的总结 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 浏览器的兼容性问题,通常是因为不同的浏览器对同一段代码有不同的解析,造成页面显示不统一的情况。 这里谈到的浏览器,主要指IE6/IE7/IE… FireF…

    2025年12月24日
    000
  • 如何使用纯CSS实现一只纸鹤(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom,容器中包含…

    2025年12月24日
    000
  • 什么是BFC?css中的BFC有什么用?

    本篇文章给大家带来的内容是关于什么是bfc?css中的bfc有什么用?,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 什么是BFC(Block Formatting Context) Formatting context(格式化上下文) 是 W3C CSS2.1 规范中的一个概念。…

    2025年12月24日
    000
  • 如何使用纯CSS实现一个人独自行走的动画效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现一个人独自行走的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 d…

    2025年12月24日
    000
  • css盒子模型的理解:5分钟搞懂css盒子模型是什么?

    css盒子模型是什么?毕竟在学习css时经常可以看到css盒子模型,所以,接下来的这篇文章创想鸟就跟大家来谈一谈css盒子模型的概念以及对css盒子模型的理解。 首先,我们来看一看css盒子模型是什么? 从百度百科上我们可以知道,网页设计中常听的属性名:内容(content)、内边距(padding…

    2025年12月24日 好文分享
    000
  • css继承是什么意思?css哪些属性可以继承?

    在css的学习过程中,我们会遇到一些属性可以继承,那么,css中的继承是什么意思?有哪些属性可以继承呢?本篇文章就给大家来介绍一下css中继承性的内容。 我们定义css继承前,先来看一看HTML DOM(文档树),HTML DOM(文档树)是由html元素组成,文档树和家族树类似,也有祖先、后代、父…

    好文分享 2025年12月24日
    000
  • 如何使用纯CSS实现抛盒子的loader (附源码)

    本篇文章给大家带来的内容是关于 如何使用纯css实现抛盒子的loader (附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 d…

    2025年12月24日
    000
  • 如何使用纯CSS实现徘徊的果冻怪兽(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现徘徊的果冻怪兽,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom,容器中包含 2…

    2025年12月24日
    000
  • 如何使用纯CSS实现小球变矩形背景的按钮悬停效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现小球变矩形背景的按钮悬停效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义…

    2025年12月24日
    000
  • 纯css如何实现瀑布流?css实现瀑布流的两种方式

    瀑布流的布局感觉还是蛮不错的,所以本篇文章就给大家来分享一下css实现瀑布流布局的两种方法,通过multi-column多列布局实现瀑布流和flex布局实现瀑布流。 1.multi-column多列布局实现瀑布流 先简单的讲下multi-column相关的部分属性 column-count设置列数 …

    2025年12月24日
    000
  • 如何使用纯CSS实现锡纸撕开的文字效果(附代码)

    本篇文章给大家带来的内容是关于如何使用纯css实现锡纸撕开的文字效果(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom…

    2025年12月24日
    000
  • css如何实现禁止文字被选择(代码)

    本篇文章给大家带来的内容是关于css如何实现禁止文字被选择(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 css禁止文字被选择 .m-no-select { -webkit-touch-callout: none; /* iOS Safari */ -webkit-use…

    好文分享 2025年12月24日
    000
  • css如何实现图片右上角添加复选框 (代码)

    本篇文章给大家带来的内容是关于css如何实现图片右上角添加复选框 (代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 页面如下:  <base href="”> 测试 .main{ float:left; margin-left:8px; } @@##@…

    好文分享 2025年12月24日
    000
  • css与html的区别是什么?css与html区别对比

    很多同学在学习前端的时候,可能会对html与css之间的区别不太了解,今天的这篇文章创想鸟给需要的朋友们总结了关于html与css之间的比较,下面我们就来看一下具体的内容。 css与html区别: 1. 首先我们来看一下html: html是HyperTextMark-upLanguage的缩写,即…

    2025年12月24日
    000
  • 深入理解CSS伪类选择器的知识(代码示例)

    本篇文章给大家带来的内容是关于深入理解css伪类选择器的知识(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 前言 过去零零星星地了解和使用:link、::after和content等伪类、伪元素选择器,最近看书时发现这方面有所欠缺,于是决定稍微深入学习一下,以下为伪类部…

    好文分享 2025年12月24日
    000
  • 如何使用CSS和D3实现小鱼游动的交互动画(附代码)

    本篇文章给大家带来的内容是关于如何使用css和d3实现小鱼游动的交互动画(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 do…

    2025年12月24日
    000
  • 如何使用纯CSS实现苹果系统的相册图标(代码)

    本篇文章给大家带来的内容是关于如何使用css实现苹果系统的相册图标(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom,容…

    2025年12月24日
    000
  • css如何实现水纹扩散的动画效果(纯代码)

    本篇文章给大家带来的内容是关于css如何实现水纹扩散的动画效果(纯代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 <!—-> <!—-> <!—-> css: .main{ position: relative; height:…

    好文分享 2025年12月24日
    000
  • css中reset重置样式的代码实现

    本篇文章给大家带来的内容是关于如何使用纯CSS3实现图片轮播的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 重置样式,清除浏览器默认样式,并配置适合设计的基础样式(强调文本是否大多是粗体、主文字色,主链接色,主字体等)。 /* reset */html,body,h1,h2,…

    好文分享 2025年12月24日
    000
  • css实现类似图片画廊的图片排序(完整代码)

    本篇文章给大家带来的内容是关于css实现类似图片画廊的图片排序(完整代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 自学教程(如约智惠.com) div.img { margin:5px; border:1px solid #ccc; float:left; width:18…

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信