千家信息网

如何使用CSS实现图片走马灯动态效果

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下如何使用CSS实现图片走马灯动态效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于项目需要实现一个图片的走马灯效果。查看了大部份通用vue的组件库,比较少看到这
千家信息网最后更新 2025年01月19日如何使用CSS实现图片走马灯动态效果

小编给大家分享一下如何使用CSS实现图片走马灯动态效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

由于项目需要实现一个图片的走马灯效果。查看了大部份通用vue的组件库,比较少看到这类组件,就自己手动实现基于css3动画的走马灯效果。马上想到两个方案,一个是通过定时器、scrollLeft或者修改定位position中的left属性值,另外个方案是通过css3的transform和animation。

选择用动画实现,由于js实现的动画运行在CPU,css3的动画运行在GPU,css3渲染成本低,最后决定用css3去实现这类操作。

使用scrollLeft

一开始使用scrollLeft+overflow实现效果,用到了定时器去触发,然后每次都会导致重绘和回流。(ps:如果需要更好提高性能,可以使用requestAnimationFrame去代替定时器触发,主要优点是requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧)

(更改scrollLeft与left效果一样)核心代码:

function toScrollLeft(){  //  如果容器的宽度大于滚动条距离,则重复滚动  if(divWidth > box.scrollLeft){    box.scrollLeft++    setTimeout('toScrollLeft()', 18);  }  else{    // 滚动结束,从新开始    box.scrollLeft=0;    setTimeout('toScrollLeft()', 18);  }}

使用 css3 animation transform

使用css3动画实现走马灯,用css变量来动态设置每个状态transform的translateX偏移量,以及最关键的animation,实现部分效果如下制作的gif。

1. 初步设置html布局,设置一个div容器

2. 设置对应的样式

.box{display: flex;overflow: hidden;flex-direction: column;border-radius:12px;width: 100%;height: 100%;background-color:#fff;}ul{display: flex;}

3. 最后设置绑定对象到style上,在.box元素的style上主要是使用了css 变量,然后通过具体值去动态设置动画每个状态的效果。关键代码使用了animation:cap.length*8+ 's move infinite linear; 就会出现无限重复移动的效果。

ps:整体主要操作点就是这样,其他细节的就省略了

data(){    cap:new Array(6).fill('https://res.minigame.vip/gc-assets/fruit-master/fruit-master_icon.png')}
@keyframes move {    0%{    transform:translateX(var(--card-ul-width-start))    }    30%{    transform:translateX(var(--card-ul-width-middle1))    }    70%{    transform:translateX(var(--card-ul-width-middle2))    }    100%{    transform:translateX(var(--card-ul-width-end))    }    }

看完了这篇文章,相信你对"如何使用CSS实现图片走马灯动态效果"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

效果 动画 走马灯 动态 图片 定时器 代码 关键 变量 容器 方案 状态 篇文章 组件 频率 运行 一般来说 两个 优点 元素 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 vs修改sql数据库密码代码 今日头条领金币服务器异常 电脑服务器CPU总核数 幻塔总是重连服务器 西部数码的服务器 科技支撑互联网+产业 网络安全与道德的教案 国际服吃鸡总是连不上战斗服务器 独立性检验怎么建立数据库 常州尖锋软件开发有限公司 数据库技术及应用实训体会 国内期刊论文数据库有哪些 网络安全建设专家意见 win10链接服务器 python材料父子数据库 有力支撑网络安全 网络安全心得实验报告 慧族网络技术有限公司地址 网络安全法以什么为原则 网络安全主长是谁 高智能电子软件开发有限公司 各省高校录取分数数据库免费 数据库压缩日志 网吧网络安全防护技术手段 国内期刊论文数据库有哪些 端游吃鸡登陆服务器繁忙怎么回事 优化网络安全和法律的兼容 星影聚合互联网科技有限公司 湖北网络技术助力 中国联通智慧网络技术有限公司
0