本篇文章给大家带来的内容是关于如何使用纯CSS实现一个转动的自行车车轮的动画效果 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
效果预览
源代码下载
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,容器中包含 6 个元素:
<div class="wheel"> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
居中显示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-image: linear-gradient(#555, #222); }
画出轮圈:
.wheel { width: 9em; height: 9em; font-size: 25px; border: 0.4em solid #777; border-radius: 50%; box-shadow: 0 0 0 0.5em #111; }
定义辐条的样式:
.wheel { display: flex; align-items: center; justify-content: center; } .wheel span { position: absolute; width: 8em; height: 1em; border: 0.1em solid; border-color: #ccc transparent; }
定义变量,画出多根幅条:
.wheel span { transform: rotate(calc((var(--n) - 1) * 30deg)); } .wheel span:nth-child(1) { --n: 1; } .wheel span:nth-child(2) { --n: 2; } .wheel span:nth-child(3) { --n: 3; } .wheel span:nth-child(4) { --n: 4; } .wheel span:nth-child(5) { --n: 5; } .wheel span:nth-child(6) { --n: 6; }
让车轮转动起来:
.wheel span { animation: run 4s linear infinite; } @keyframes run { to { transform: rotate(calc((var(--n) - 1) * 30deg + 360deg)); } }
用伪元素画出地面上的线条:
.wheel { position: relative; } .wheel::before { content: ''; position: absolute; width: 15em; height: 0.2em; top: 11em; background-image: linear-gradient( to right, silver 0, silver 4em, transparent 4em, transparent 5em, silver 5em, silver 10em, transparent 10em, transparent 12em, silver 12em, silver 14em, transparent 14em, transparent 15em ); }
最后,让地面上的线条动起来,形成车轮向前走的效果:
.wheel::before { background-position: 15em; animation: run2 6s linear infinite; } @keyframes run2 { to { background-position: -15em; } }
大功告成!
相关推荐:
如何使用CSS和D3实现小鱼游动的交互动画(附代码)以上是如何使用纯CSS实现一个转动的自行车车轮的动画效果的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。

vscode自身是支持vue文件组件跳转到定义的,但是支持的力度是非常弱的。我们在vue-cli的配置的下,可以写很多灵活的用法,这样可以提升我们的生产效率。但是正是这些灵活的写法,导致了vscode自身提供的功能无法支持跳转到文件定义。为了兼容这些灵活的写法,提高工作效率,所以写了一个vscode支持vue文件跳转到定义的插件。

Node 19已正式发布,下面本篇文章就来带大家详解了解一下Node.js 19的 6 大特性,希望对大家有所帮助!

选择一个Node的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?

本篇文章给大家整理和分享几个前端文件处理相关的实用工具库,共分成6大类一一介绍给大家,希望对大家有所帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能