html怎么让方块自动旋转,如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)...

5268f80b9b1e01f982625ef6fac83ca1.png

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

效果预览

d0a512405c5359ad9bf6d6ab2c8fd9c2.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知识,可以去Gxl网css教程栏目去学习一下。

相关推荐:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同志亦凡人第五季/全集BQueer As Folk 5迅雷下载

同志亦凡人 第五季 Queer as Folk Season 5 (2005) 本季看点:这是一群生活在匹兹堡男人和男人,女人和女人的故事。在他们的王国里有各色人物。王国的国王Brian(葛尔?哈罗德 Gale Harold 饰),只追求性不问爱&#xff1…

html怎么使图片无法另存为,如何禁止图片另存为?禁止网页另存为到本地的方法...

在很多企事业单位,处于商业机密保护的需要,常常需要禁止一些文件格式的“另存为”功能,防止通过“另存为”将文件另行保存,据为己有的目的;尤其是在局域网中访问服务器共享文件的时候,常常需要禁止将共享文…

正益工场为京西创客工场输送双创“软”实力

12月30日,中关村门头沟科技园“京西创客工场”正式揭牌,这里将成为京西“生态科创”的聚集地。正益工场作为唯一入驻的“移动互联网”双创生态平台,将为双创输送“移动技术移动模式”等软实力。北京市副市长隋振江、市政协、中关村管委会等领…

几种服务器端IO模型的简单介绍及实现(转载)

作者:阿凡卢 出处:http://www.cnblogs.com/luxiaoxun/服务器端几种模型: 1、阻塞式模型(blocking IO) 我们第一次接触到的网络编程都是从 listen()、accpet()、send()、recv() 等接口开始的。使用这些接口可以很方便的…

2021年高考成绩查询襄阳状元,大胆猜测一下,2021年高考,湖北省文理状元会花落谁家?...

随着2021年高考的逼近,考生进入紧张有序的复习中,家长也在为孩子筹谋着哪所学校更适合,作为吃瓜群众的我们,可能更关注今年湖北省的文理科状元会花落谁家,要知道,一所学校如果可以出现一名高考状元&#xf…

为什么写Java程序需要接口

为什么写Java程序需要接口 我之所以以这个作为标题,并不是为了玩噱头,讲一些似是而非的空话,还是以探索加发现, 追本溯源的讲解一下为什么Java需要接口,怎么理解,怎么用它。 首先接口并不是Java才有的&…

《领域特定语言》一1.5使用代码生成

1.5使用代码生成 在迄今为止的讨论中,要处理DSL,组装“语义模型”(第11章),然后执行语义模型,提供我们希望从控制器得到的行为。在语言圈子里,这种方式称为解释(interpretation&…

SVG 基础图形

SVG 基础图形 SVG包含了以下的基础图形元素&#xff1a; 矩形&#xff08;包括可选的圆角&#xff09;&#xff0c;使用<rect>元素创建圆形&#xff0c;使用<circle>元素创建椭圆形&#xff0c;使用<ellipse>元素创建直线&#xff0c;使用<line>元素创…

枣庄三中高考2021成绩查询,2021枣庄中考成绩查询系统入口

2021枣庄中考成绩查询系统入口2021-05-20 19:11:35文/王佳慧2021年&#xff0c;枣庄的中考时间快到了&#xff0c;本文分享了枣庄中考成绩查询入口&#xff0c;系统开通后考生可登陆查询成绩。枣庄中考成绩查询入口志愿填报须知1.录取标准&#xff1a;提前批、第一批、第三批学…

移动端”宴席知多少

转载(http://adt.aicai.com/index.php/archives/179/) 瞎折腾移动端的项目已经很长一段时间了&#xff0c;并不像其它企业一样&#xff0c;可以有项目组去完成&#xff0c;基本都是一个人瞎尝试&#xff0c;时而web&#xff0c;时而web app。恍恍惚惚过了这段岁月&#xff0c;也…

快速的取整方法(~~)

为什么80%的码农都做不了架构师&#xff1f;>>> 最近看一篇js装逼小技巧————双波浪号的妙用(将内容转化为数字,或者小数取整)&#xff0c;但是本身我的JavaScript水平比较低对其底层操作和其使用范围不甚了解&#xff1b;通过翻阅资料现进行简单的整理。 ###装…

git log友好显示

查看commit 提交日志 $ git log $git log --prettyoneline $git reflog 显示所有提交记录&#xff0c;包括已经回退的提交&#xff0c;如图&#xff1a;提交了abc 和 bb 然后回退到 abc   $git log 只显示abc提交 可以使用 $git reset --hard commit号 回退到bb git reflog…

南理工计算机技术专业学位,南京理工大学计算机技术(专业学位)考研难吗

很多考生在准备南京理工大学计算机技术(专业学位)考研难吗&#xff1f;是考研报考的时候都会产生这样的疑问&#xff1a;这个专业的研究生好吗&#xff1f;适合我吗&#xff1f;对我以后的人生和职业会有帮助吗&#xff1f;考生在准备南京理工大学计算机技术(专业学位)专业考研…

《分布式系统:概念与设计》一2.3.2 体系结构模式

2.3.2 体系结构模式 体系结构模式构建在上述讨论过的相对原始的体系结构元素之上&#xff0c;提供组合的、重复出现的结构&#xff0c;这些结构在给定的环境中能运行良好。它们未必是完整的解决方案&#xff0c;但当与其他模式组合时&#xff0c;它们会更好地引导设计者给出一…

javascript sort()实现元素json对象的排序

看以下代码&#xff1a; var s [ { name: "Robin Van PurseStrings", age: 30 } ,{ name: "Theo Walcott", age: 24 } ,{ name: "Bacary Sagna", age: 28 } ].sort(function(obj1, obj2) {// 实现增序排列&#xff1a;前者的 age 小于后者…

调查:Java程序员最伤心,C++程序员最年老

说起我们对编程世界现有的刻板印象&#xff0c;你一定听说过类似于没有人喜欢用Java编码或者使用C 都是老人家&#xff0c;等等这样的话。为了分析这些刻板印象背后的真相&#xff0c;Trestle Technology的数据工程师写了一个工具。 不知道你有没有听说过微软的Project Oxford&…

计算机不小心删除怎么找回桌面,如何将桌面上误删的文件找回

在如今工作电脑化的趋势下&#xff0c;用户都会在桌面上创建各种各样的文件等&#xff0c;这些文件都是需要在工作中经常要进行各种操作的重要文件&#xff0c;那么频繁的操作也会出现各种的意外情况等&#xff0c;如果不小心删除了重要的文件该怎么恢复呢&#xff1f;想要恢复…

OnClickListener冲突的问题

OnClickListener冲突的问题 (2011-11-26 15:28:27) 转载▼标签&#xff1a; 杂谈 分类&#xff1a; android学习记录 import anfroid.view.View.OnClickListenerimport anfroid.content.DialogInterface.OnClickListener 这两个东西要同时用的话&#xff0c;要使用以下方式&…

html 响应式 同一行,一行CSS实现各种响应式元素 – Fluidity

一行CSS实现各种响应式元素 – Fluidity3月 31, 2014评论SponsorFLUIDITY是一个极微小的CSS样式表&#xff0c;压缩版只有一行代码&#xff0c;大小只有115个字节&#xff0c;它能实现图像、文本、Canvas、Table表格以及iFrame框架的响应式功能。好用且实用&#xff01;这个响应…

玩C一定用得到的19款Java开源Web爬虫

网络爬虫(又被称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者)&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 今天将为…