文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用CSS实现眼冒金星的动画效果

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关怎么用CSS实现眼冒金星的动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    代码解读

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

    <divclass='container'>

    <span></span>

    <span></span>

    <span></span>

    <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-color:black;

    }

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

    .container{

    display:grid;

    --columns:3;

    grid-template-columns:repeat(var(--columns),1fr);

    }

    定义子元素样式:

    .containerspan{

    width:25px;

    height:25px;

    color:lime;

    background-color:currentColor;

    }

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

    .containerspan{

    transform:scale(0);

    animation:spin5slinearinfinite;

    }

    @keyframesspin{

    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秒之内的任意时间:

    .containerspan{

    animation-delay:calc(var(--delay)*1s);

    }

    .containerspan:nth-child(1){--delay:0.8}

    .containerspan:nth-child(2){--delay:0.2}

    .containerspan:nth-child(3){--delay:1.9}

    .containerspan:nth-child(4){--delay:3.9}

    .containerspan:nth-child(5){--delay:2.8}

    .containerspan:nth-child(6){--delay:3.5}

    .containerspan:nth-child(7){--delay:1.5}

    .containerspan:nth-child(8){--delay:2.3}

    .containerspan:nth-child(9){--delay:1.7}

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

    引入d3库:

    <scriptsrc="https://d3js.org/d3.v5.min.js"></script>

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

    constCOLUMNS=3;

    d3.select('.container')

    .style('--columns',COLUMNS);

    删除掉html文件中的<span>子元素,用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,生成更多的子元素,加强视觉效果:

    constCOLUMNS=15;

怎么用CSS实现眼冒金星的动画效果

关于“怎么用CSS实现眼冒金星的动画效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯