如何实现元素无限向下平滑滑动并循环重置(不反弹)
发布时间 - 2026-02-02 00:00:00 点击率:次通过调整 CSS 动画关键帧,将 `@keyframes` 定义为单向线性位移(0% → 100%),配合 `animation: slide 9s linear infinite`,即可让元素持续向下移动并在触底后无缝回到顶部,避免反弹效果。
要实现图像组无限向下平滑滑动 + 触底自动重置到顶部(而非“弹回”或“折返”),核心在于:动画必须是单向、非对称、且终点与起点形成视觉闭环。你原代码中 0%, 100% { transform: translateY(0); } 和 50% { translateY(500px); } 构成了一个“下→上”的往返路径(即先下后上),这就是反弹的根源。
✅ 正确做法是定义一个纯单向位移动画,让元素从顶部出发,直线移动到底部指定位置,然后立即跳回起点继

以下是优化后的完整方案:
.box-buttons {
width: 70%;
height: 750px;
background-color: grey;
float: left;
margin: 30px 3%;
border: 1px solid black;
overflow: hidden; /* 关键:隐藏重置瞬间的“跳变” */
}
.object {
animation: slide 9s linear infinite;
position: relative;
top: 0; /* 推荐用 top 替代 bottom,语义更清晰 */
}
@keyframes slide {
0% {
transform: translateY(-100%); /* 起始:完全在容器上方,隐藏 */
}
100% {
transform: translateY(750px); /* 终点:完全滑出容器底部(等于容器高度) */
}
}? 为什么这样更健壮?
- translateY(-100%) 确保动画起始时元素完全不可见(从顶部外进入),避免首帧闪现;
- translateY(750px)(或 translateY(100vh))使元素彻底滑出视口底部,之后浏览器会立即跳回 -100%,因 overflow: hidden 存在,用户看不到重置过程,形成无缝循环;
- 移除 50% 停顿点,杜绝任何反向运动可能。
⚠️ 注意事项:
- 动画时长(如 9s)需根据内容高度与容器尺寸微调,确保滑动节奏自然;
- 若 .object 内容高度 > 容器高度,建议添加 white-space: nowrap 和 display: inline-block 防止换行干扰位移;
- 在移动端需添加 -webkit-animation 前缀以兼容旧版 Safari;
- 如需更精细控制(如多行错落滚动),可改用 @property + scroll-driven animations 或 JavaScript 驱动,但本例纯 CSS 已足够高效。
总结:消除反弹 = 摒弃对称关键帧,采用单向位移 + 容器裁剪 + 线性时序。只需修改 @keyframes 为两帧定义,并确保 overflow: hidden,即可获得专业级无限下滑效果。
# css
# javascript
# java
# 浏览器
# safari
# overflow
# 为什么
# webkit
# Object
# 循环
# Property
# function
# display
# transform
# animation
# 滑出
# 触底
# 跳回
# 闭环
# 这就是
# 只需
# 并在
# 下一
# 而非
# 如需
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何快速生成橙子建站落地页链接?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何正确下载安装西数主机建站助手?
高防服务器租用如何选择配置与防御等级?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
焦点电影公司作品,电影焦点结局是什么?
linux top下的 minerd 木马清除方法
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Android Socket接口实现即时通讯实例代码
EditPlus 正则表达式 实战(3)
无锡营销型网站制作公司,无锡网选车牌流程?
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
php json中文编码为null的解决办法
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何用景安虚拟主机手机版绑定域名建站?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
在线制作视频网站免费,都有哪些好的动漫网站?
java ZXing生成二维码及条码实例分享
海南网站制作公司有哪些,海口网是哪家的?
phpredis提高消息队列的实时性方法(推荐)
魔毅自助建站系统:模板定制与SEO优化一键生成指南
教你用AI润色文章,让你的文字表达更专业
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
简历在线制作网站免费版,如何创建个人简历?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Android中AutoCompleteTextView自动提示
如何在景安云服务器上绑定域名并配置虚拟主机?
Laravel Docker环境搭建教程_Laravel Sail使用指南
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
jQuery validate插件功能与用法详解
如何解决hover在ie6中的兼容性问题
如何用AI帮你把自己的生活经历写成一个有趣的故事?
C#如何调用原生C++ COM对象详解

