anime.js 图片位移动画_HTML & CSS | 实现图片轮播效果

3c196a82e487bc9c7ee762fea1aaa3cf.gif

你们要的技术贴又双叒叕来了~

这次是利用html&css实现图片轮播效果

话不多说 先上效果图

b696a086d8d38bc45eb8d146a659b9cd.png ee00bef8caeb95453ef777036546329a.gif b696a086d8d38bc45eb8d146a659b9cd.png

下面是具体步骤了 人家认真学习嗷~

一、搭建基本结构,将四张图片插入网页

为图片标签,在标签内设置了图片的高度和宽度,这时四张图片只是简单地排列在网页中。

57d054cd2fefcc01c012f6411b061262.png fb1595755dd10df8c8a814319b5229fa.png

效果如图:

57d054cd2fefcc01c012f6411b061262.png 905958e538750012729796e204fc7394.png b696a086d8d38bc45eb8d146a659b9cd.png

二、关于css选择器

关于css选择器有多种,如:标签选择器、类选择器、ID选择器、全局选择器......网页中可通过使用各种选择器为元素设置CSS规则。

这里使用类选择器来设置div的CSS规则,如图中的:

L43:

表示给div赋予了一个class属性,属性名为tv

以属性名作为选择器设置div的样式,如:

L30-36表示设置此div的样式:

宽度(width)为350像素;

高度(height)为160像素;

并设置溢出隐藏(overflow:hidden),将在此div范围以外的内容隐藏起来,让网页中只显示出一张图片;并且设置了边框(border)。

用同样的方法也可以给其他的类选择器设置样式。

57d054cd2fefcc01c012f6411b061262.png 17ea3dfc9a9e54f184bc18d126485b05.png

效果图:

57d054cd2fefcc01c012f6411b061262.png a2d90eaccf1d6fee00c5e0fd4c47816f.png b696a086d8d38bc45eb8d146a659b9cd.png

三、为图片设置动画,实现图片的轮播

L25:

animation: 8s donghua infinite;

——animation是动画标签:动画时间为8s,动画名称为donghua;模式为无限循环模式

L38-44:

translateX()表示以X轴为坐标的位移。()中的像素值表示位移大小,这里的位移大小由图片的宽度(350px)决定,默认方向为向右,加负号表示方向相反,即图片向左移动

L38:

通过@keyframes设置动画轮播,这里将整个动画时间(共8s)平均分成了四段。

0%-25%占动画的0-2s,0px位移,即显示第一张图片;

25%-50%占动画的2-4s,向左移动350个像素,即从第一张图片播放到第二张图片;

以此类推......

57d054cd2fefcc01c012f6411b061262.png 81410bf5bf07b8e0fc870a01ef151579.png

效果图:

57d054cd2fefcc01c012f6411b061262.png 397bf21a7a0e4e6df462fe82c730c630.gif b696a086d8d38bc45eb8d146a659b9cd.png

四、优化动画

以上动画时间的设置会出现一个问题:图片停留的时间太短,影响网页的视觉效果,所以需要进一步通过设置动画时间段来改变图片的轮播时间和停留时间。

例:

57d054cd2fefcc01c012f6411b061262.png accee4c72af3ea02b9c20cf49e3504b0.png

25%-35%:向左移动350像素,图片轮播。

35%-50%:无位移,图片停留。

到这一步,网页中图片轮播效果就做好了。

b696a086d8d38bc45eb8d146a659b9cd.png

当当当当~ 开头的那个效果图就大功告成了

如下图???

ee00bef8caeb95453ef777036546329a.gif

这次的技术贴就是这样,大家有没有学到呢

anyway,下次的技术贴不见不散鸭~

执行编辑| 侯晓东

责任编辑| 于文博

de19d3241bcd3addc1bf500ad5d4700d.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以使用Anime.js来为你创建一个具有连续动作的动态火柴人动画。请确保已经在HTML文件中引入了Anime.js库,然后可以使用以下代码: ```html <!DOCTYPE html> <html> <head> <title>火柴人动画</title> <style> #canvas { width: 400px; height: 400px; border: 1px solid black; } </style> </head> <body> <div id="canvas"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script> <script> const canvas = document.getElementById('canvas'); const animation = anime.timeline({ autoplay: true, loop: true, }); const drawStickMan = () => { const stickMan = document.createElement('div'); stickMan.classList.add('stickman'); canvas.appendChild(stickMan); }; drawStickMan(); animation .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -40, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: -360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }); </script> </body> </html> ``` 在上述代码中,我们使用了Anime.js来创建一个时间轴(timeline),并为火柴人动画添加了一系列连续的动作。在`drawStickMan`函数中,我们创建了一个`div`元素,添加了`stickman`类,并将其附加到Canvas容器中。然后,我们使用Anime.js的时间轴来定义火柴人的动作序列。每个动作都使用`targets`属性指定要应用动画的元素,这里是具有`stickman`类的div元素。通过指定`translateY`和`rotateZ`属性,我们定义了火柴人在垂直和水平方向上的移动和旋转动画效果。我们还设置了持续时间和缓动效果。 你可以根据需要调整动画效果,例如修改持续时间、添加更多动作等。同时,你也可以通过添加CSS样式来美化火柴人的外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值