千家信息网

怎么用纯CSS实现一个圆环旋转错觉的动画效果

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"怎么用纯CSS实现一个圆环旋转错觉的动画效果",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么用纯CSS实现一个圆环旋转错觉的动画效果"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2026年11月01日怎么用纯CSS实现一个圆环旋转错觉的动画效果

本文小编为大家详细介绍"怎么用纯CSS实现一个圆环旋转错觉的动画效果",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么用纯CSS实现一个圆环旋转错觉的动画效果"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

效果图:

  代码解读

  定义dom,容器中包含10个

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

  

  

  

  

  

  

  

  

  

  

  

  

  定义容器尺寸:

  .container{

  width:17em;

  height:17em;

  font-size:16px;

  }

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

  .container{

  position:relative;

  }

  .containerdiv{

  position:absolute;

  width:inherit;

  height:inherit;

  }

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

  .containerdiv{

  display:flex;

  align-items:center;

  justify-content:center;

  }

  .containerspan{

  position:absolute;

  width:1em;

  height:1em;

  background-color:yellow;

  }

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

  .containerspan{

  --duration:2s;

  animation:movevar(--duration)infinite;

  }

  @keyframesmove{

  0%,100%{

  left:calc(10%-0.5em);

  }

  50%{

  left:calc(90%-0.5em);

  }

  }

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

  .containerspan{

  animation:movevar(--duration)cubic-bezier(0.6,-0.3,0.7,0)infinite;

  }

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

  .containerspan{

  animation:

  movevar(--duration)cubic-bezier(0.6,-0.3,0.7,0)infinite,

  morphvar(--duration)ease-in-outinfinite;

  }

  @keyframesmorph{

  0%,50%,100%{

  transform:scale(0.75,1);

  }

  25%,75%{

  transform:scale(1.5,0.5);

  }

  }

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

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

  .containerdiv:nth-child(1){--n:1;}

  .containerdiv:nth-child(2){--n:2;}

  .containerdiv:nth-child(3){--n:3;}

  .containerdiv:nth-child(4){--n:4;}

  .containerdiv:nth-child(5){--n:5;}

  .containerdiv:nth-child(6){--n:6;}

  .containerdiv:nth-child(7){--n:7;}

  .containerdiv:nth-child(8){--n:8;}

  .containerdiv:nth-child(9){--n:9;}

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

  .containerp{

  transform:rotate(calc(var(--n)*40deg));

  }

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

  .containerspan{

  animation-delay:calc(var(--duration)/9*var(--n)*-1);

  }

  最后,为小方块上色:

  .containerspan{

  background-color:hsl(calc(var(--n)*80deg),100%,70%);

  }

读到这里,这篇"怎么用纯CSS实现一个圆环旋转错觉的动画效果"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

动画 方块 元素 效果 错觉 容器 圆环 个子 文章 内容 变量 尺寸 妥当 相同 接下来 下标 义子 代码 函数 圆形 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 科技创新与互联网经济 智能科技公司是互联网公司吗 金融科技 互联网金融 有马互联网科技 杭州互联网科技公司 华中科技大学互联网 壹账通互联网科技 无线互联网科技 深圳期待互联网科技 互联网科技素材视频竖屏 成都互联网科技公司工作好不好 互联网金融科技名词解释 互联网时代的科技公司 上海京穆互联网科技有限公司 互联网科技股为什么大涨 西安有哪些互联网高科技企业 珠海东科互联网科技有限公司 广州智享互联网科技 互联网 科技节活动 微视频大赛 互联网核心科技是什么 成都互联网科技公司 互联网科技论坛 长亮科技 互联网金融 互联网科技创新企业排名 科技与互联网的利与弊 创业天下互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网公司黑科技创始人 唐山双旺合互联网科技产业园
0