当前位置: 首页 > Web前端 > HTML

前端日常实战:136#视频演示如何使用D3和GSAP制作横条加载器

时间:2023-04-02 17:23:41 HTML

效果预览在当前页面点击右侧“点击预览”按钮进行预览,点击链接进行预览全屏。https://codepen.io/comehop??e/pen/pOZKWJ互动视频本视频为互动视频,您可以随时暂停视频,编辑视频中的代码。请使用chrome、safari、edge打开观看。https://scrimba.com/p/pEgDAM/cVB48Ur源码下载日常前端实战系列完整源码请到github下载:https://github.com/comehop??e/front-end-daily-挑战代码解释定义dom,容器包含一个span元素:

居中显示:body{margin:0;高度:100vh;显示:弹性;对齐项目:居中;证明内容:居中;background-color:black;}定义容器的大小:.loader{width:40em;高度:1em;font-size:10px;}设置容器内span的样式,为彩色细长条:.loader{position:relative;}.loaderspan{position:absolute;宽度:继承;身高:继承;background-color:hsl(24,100%,65%);}importd3.js:删除跨度dom中的元素,使用d3创建,其中常量COUNT为细长条的个数,因为d3.range()生成的数据是从0开始的系列,所以将数据修正为从1开始的系列日常习惯:constCOUNT=1;d3.select('.loader').selectAll('span').data(d3.range(COUNT).map(d=>d+1)).enter().append('span')删除css中设置span元素的background-color属性的代码,改用d3设置:d3.select('.loader').selectAll('span').data(d3.range(COUNT).map(d=>d+1)).enter().append('span').style('background-color',`hsl(24,100%,65%)`)将细长条数改为2,颜色改为动态生成:constHUE_DEG=12;常数计数=2;d3.select('.loader')/*...slightly*/.style('background-color',(d)=>`hsl(${d*HUE_DEG},100%,65%)`)一个进一步,将颜色更改为彩条和黑条间隔出现,请注意,虽然表达式中的色调值增加了12,但实际效果是彩条之间的色相差为24,因为里面混杂了黑色Strip:d3.select('.loader')/*...略*/.style('background-color',(d)=>d%2!==0?`hsl(${d*HUE_DEG},100%,65%)`:'黑色');此时动态生成的dom结构为:
引入gsap库:增加条带从中心向两边拉伸的动画效果:letanimation=newTimelineMax({repeat:-1});animation.staggerFrom('.loaderspan',0.5,{scaleX:0},0.4)最后将条数改为30,即整个色相圈的360度数除以色相区间得到:constCOUNT=360/HUE_DEG;你完成了!