如何使用CSS实现眼冒金星的动画效果(附源码)

本篇文章给大家带来的内容是关于如何使用css实现眼冒金星的动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

3001827531-5bbfe9533201b_articlex.gif

源代码下载

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

代码解读

定义 dom,容器中包含 9 个子元素:

居中显示:

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

body {    margin: 0;    height: 100vh;    display: flex;    align-items: center;    justify-content: center;    background-color: black;}

设置容器中子元素的布局方式,形成一个 3 * 3 的网格,其中 --columns 是网格每一边上的子元素数量:

.container {    display: grid;    --columns: 3;    grid-template-columns: repeat(var(--columns), 1fr);}

定义子元素样式:

.container span {    width: 25px;    height: 25px;    color: lime;    background-color: currentColor;}

增加子元素的动画效果,总动画时长是 5 秒,其中第 1 秒(0% ~ 20%)有动画,其余 4 秒(20% ~ 100%)静止:

.container span {    transform: scale(0);    animation: spin 5s linear infinite;}@keyframes spin {    0% {        transform: rotate(0deg) scale(1);    }    5%, 15% {        transform: rotate(90deg) scale(0);        background: white;    }    17.5% {        transform: rotate(180deg) scale(1);        background-color: currentColor;    }    20%, 100% {        transform: rotate(90deg) scale(0);    }}

设置动画延时,使各子元素的动画随机延时 4 秒之内的任意时间:

.container span {    animation-delay: calc(var(--delay) * 1s);}.container span:nth-child(1) { --delay: 0.8 }.container span:nth-child(2) { --delay: 0.2 }.container span:nth-child(3) { --delay: 1.9 }.container span:nth-child(4) { --delay: 3.9 }.container span:nth-child(5) { --delay: 2.8 }.container span:nth-child(6) { --delay: 3.5 }.container span:nth-child(7) { --delay: 1.5 }.container span:nth-child(8) { --delay: 2.3 }.container span:nth-child(9) { --delay: 1.7 }

至此,静态效果完成,接下来批量处理 dom 元素。
引入 d3 库:


删除掉 css 文件中的 --columns 变量声明,用 d3 为变量赋值:

const COLUMNS = 3;d3.select('.container')    .style('--columns', COLUMNS);

删除掉 html 文件中的 子元素,用 d3 动态生成:

d3.select('.container')    .style('--columns', COLUMNS)    .selectAll('span')    .data(d3.range(COLUMNS * COLUMNS))    .enter()    .append('span');

删除掉 css 文件中的 --delay 变量声明,用 d3 为变量生成随机数:

d3.select('.container')    .style('--columns', COLUMNS)    .selectAll('span')    .data(d3.range(COLUMNS * COLUMNS))    .enter()    .append('span')    .style('--delay', () => Math.random() * 4);

最后,把边长改为 15,生成更多的子元素,加强视觉效果:

const COLUMNS = 15;

以上就是本篇文章的全部内容了,关于上述代码中所用到的css知识大家可以参考创想鸟的css开发手册。

以上就是如何使用CSS实现眼冒金星的动画效果(附源码)的详细内容,更多请关注创想鸟其它相关文章!

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

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

相关推荐

  • css的initial-letter属性实现首字下沉效果(代码实例)

    css如何实现首字下沉效果?本篇文章就给大家介绍css是如何实现首字下沉效果的,让大家了解用initial-letter属性是怎样实现首字下沉效果的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下initial-letter属性要怎样实现首字下沉效果吧! ini…

    2025年12月24日 好文分享
    000
  • css实现波浪线和立方体的代码实例

    本篇文章给大家带来的内容是关于css实现波浪线和立方体的代码实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近的项目有做到要画出波浪线效果,这里是利用linear-gradient来实现,也就是画圆,然后利用底色来遮住部分圆; 利用css3属性perspective加旋转实现…

    2025年12月24日
    000
  • PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)

    最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果 解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可以建立具有适应性的布局。 下面我们代码走起来 ……… html{ height: 100…

    好文分享 2025年12月24日
    000
  • css3实现把图片画到画布上(代码实例)

    本文给大家介绍把图片画到画布上的方法,适应pc和移动端 使用。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 画一张图片到画布上 您的浏览器不支持canvas标签。 var canvas = document.getElementById(“myCanvas”);//获取画笔var…

    2025年12月24日
    000
  • css怎样给字体和元素加阴影?text-shadow和box-shadow实现

    本文给大家介绍css怎样给字体和元素加阴影?text-shadow和box-shadow实现。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 1、语法:  对象选择器 {text-shadow:X轴偏移量 Y轴偏移量 阴影模糊半径 阴影颜色}  注:text-shadow可以使用一…

    2025年12月24日
    000
  • CSS3动画@keyframes图片变大变小颜色变化

    在我做公司官网的时候也会帮着写一些游戏的静态页,今天产品要求为了突出一个按钮,他要有颜色的变化而且要变大变小,然后我就在网上搜了下呼吸灯和其他的案例,写了个小damo,看着还有些魔性嘞。 html: @@##@@ 原理是这样的:body相对定位,.change绝对定位到.color上面,大小和.co…

    好文分享 2025年12月24日
    000
  • css如何设置背景图片的平铺方式?css设置背景图片平铺的方法(图文详解)

    css如何设置背景图片的平铺方式?本文就给大家介绍css是如何设置背景图片平铺的方法,让大家了解在css中设置背景图片水平方法平铺、垂直方向平铺,或者是不平铺的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 当我们使用background-image属性让一张背景图片在页面上…

    2025年12月24日 好文分享
    000
  • css如何实现首行缩进效果

    css实现首行缩进效果的方法:首先创建一个HTML示例文件;然后在body中定义一些文本段落;最后在css中使用text-indent属性来实现首行缩进效果即可。 本文操作环境:Windows7系统、Dell G3电脑、HTML5&&CSS3版。 在css中,我们可以使用text-i…

    2025年12月24日 好文分享
    000
  • css如何自定义checkbox样式?(代码实例)

    css如何自定义checkbox样式?本文给大家介绍css实现修改原生checkbox样式,自定义checkbox样式的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 先看看效果 原理 1.利用CSS3属性 appearance。 该属性(强制)更改(改变)默认(原生)样式。…

    2025年12月24日
    000
  • 前端移动开发之使用rem实现自适应的效果

    本文给大家介绍php的三种常用的加密解密算法,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 前言 作为一名前端工程师,我们不仅要会PC端开发,还要会移动端开发,而且现在移动端占据主要流量,所以掌握移动端开发的技能更是必须的。 那么进行移动端的开发,什么是必须,我们想要的效果是什么…

    2025年12月24日 好文分享
    000
  • 实现CSS圆环的5种方法(小结)

    这篇文章主要介绍了实现css圆环的5种方法(小结),有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 想到去年面试实习的时候被问到实习圆环的问题,特意写篇文章总结一下吧!总结了一下大概有5种方法。   1. 两个标签的嵌套: .element1{ width: 200px; heig…

    2025年12月24日
    000
  • css3动画之transition和animation属性介绍

    本文给大家介绍实现css3动画的transition和animation属性,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 tradition一共以下有4个属性: transition-property 过渡属性 transition-duration 完成动画所需时间,以秒或者…

    好文分享 2025年12月24日
    000
  • 如何使用CSS和Vanilla.js实现一组tooltip提示框(附源码)

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

    2025年12月24日
    000
  • CSS 实现滑动门的实例代码

    滑动门技术,就是指盒子背景能够自动拉伸以适应不同长度的文本。接下来通过本文给大家介绍css 实现滑动门的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 所谓的滑动门技术,就是指盒子背景能够自动拉伸以适应不同长度的文本。即当文字增多时,背景看起来也会变长。 大多数应用于导航…

    2025年12月24日
    000
  • CSS多种方式实现底部对齐的示例代码

    这篇文章主要介绍了css多种方式实现底部对齐的示例代码的相关资料,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 因公司业务要求需要实现如下图中红色区域的效果: 效果说明: 1、红色区域数据需要倒排(即从底部开始数,数字为1、2、3、4、5),并且显示在最底部2、当数据过多时需要显…

    2025年12月24日
    000
  • css如何设置行间距?css文本文字的行间距设置(代码实例)

    css如何设置行距?其实在css并没有一个直接设置行间距的方式,只能通过间接的设置行高来实现行间距效果,行高越大就表明行间距越大。本章就给大家介绍css中是怎样通过设置行高来属性行间距效果的,让大家可以了解css文本文字的行间距是如何调整的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所…

    2025年12月24日
    000
  • css如何设置段落间距?margin 属性设置段落间距(代码实例)

    段落间距是网页设计里一个提升文章阅读体验的重要因素。但网页排版不想word那样简单,而作为网页设计师,为了读者的良好阅读体验,我们必须为文章的每个小标题和段落都预留一定的空间,用css有效率地设置段落间距。本章就给大家介绍css margin 属性是怎样设置段落间距。有一定的参考价值,有需要的朋友可…

    2025年12月24日
    000
  • css3如何实现鼠标放上图片放大?(附代码)

    在css3的学习中,我们会经常做一些小的动画效果,这感觉非常有趣,所以今天的这篇文章将给大家来介绍关于css3实现图片放大的一个效果,有兴趣的小伙伴可以看一下。 我们都知道css3中增加了一个transform属性应用于元素的2D或3D转换,transform属性允许我们对元素进行旋转、缩放、移动或…

    2025年12月24日 好文分享
    000
  • css如何使用内边距来调整段落间距?(代码实例)

    css如何设置段落间距?在之前的文章【css如何设置段落间距?margin 属性设置段落间距(代码实例)】中我们介绍了css使用外边距来设置和调整段落间距,本章我们就给大家介绍css如何使用内边来设置和调整段落间距。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 首先我们来了解一下…

    2025年12月24日
    000
  • css3如何实现图片光影效果?css3图片光影实现的方法介绍

    在学习css3的过程中,我们知道css3中新增的一些属性可以很容易就能够实现某些好看的效果,这篇文章将给大家介绍一个特别的效果—图片光影效果。什么是图片光影效果呢?我们有时候可以在网页中看到一张图片当你鼠标放到这张图片上的时候就会在图片上划过一道光影,这就是光影效果,感觉是不是非常的有趣,这就可以用…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信