如何实现滚动时逐个文字淡出效果
发布时间 - 2026-01-01 00:00:00 点击率:次本文介绍如何使用 jquery 实现页面滚动时,多个具有相同类名的文本元素按顺序、独立地渐隐消失,避免所有文字同步消失的问题。核心在于为每个元素计算差异化透明度,而非统一应用全局滚动值。
在网页滚动动画中,若对所有 .text 元素统一使用 $(window).scrollTop() 计算 opacity(如 1 - scrollTop / 250),会导致所有元素透明度完全同步变化——一旦滚动超过阈值,全部瞬间变透明,失去层次感与视觉节奏。正确解法是为每个元素引入基于其位置(索引)的偏移量和衰减系数,实现“逐行/逐段渐隐”的自然效果。
以下为优化后的 jQuery 实现:
$(document).ready(function() {
$(window).scroll(function() {
$('.text').each(function(index) {
const scrollTop = $(window).scrollTop();
// 每个元素延迟触发:第0个从0px开始淡出,第1个从5px,第2个从10px……
const triggerOffset = index * 5;
if (scrollTop > triggerOffset) {
// 分母随索引增大而增大 → 后续元素淡出更缓慢,避免底部文字过
早消失
const fadeFactor = (index + 1) * 100;
const opacity = Math.max(0, 1 - (scrollTop - triggerOffset) / fadeFactor);
$(this).css("opacity", opacity);
}
});
});
});✅ 关键设计说明:
- index * 5:为每个 .text 元素设置垂直触发偏移,确保顶部元素先开始淡出,下方元素依次跟进;
- (index + 1) * 100:使靠后的元素拥有更大的分母,透明度下降更平缓,防止底部内容“一闪而没”;
- Math.max(0, ...):强制 opacity 不低于 0,避免负值导致异常渲染;
- 使用 scrollTop - triggerOffset 确保淡出起始点精准对齐各元素实际进入视口的位置。
? 注意事项:
- 若元素高度差异较大,建议改用 $(this).offset().top 替代 index 计算更精确的触发时机;
- 生产环境推荐使用 requestAnimationFrame 节流滚动事件,或改用 CSS @scroll-timeline + opacity 过渡(现代浏览器支持)以提升性能;
- 基础 HTML 结构需确保 .text 元素具备足够垂直间距(如通过 margin 或 line-height),否则视觉过渡会显得拥挤。
通过此方案,你将获得流畅、有层次的滚动淡出效果——每一行文字都像被卷轴缓缓收起,真正实现“随滚动渐隐”的专业交互动效。
# css
# jquery
# html
# 浏览器
# win
# math
# 事件
# this
# margin
# 渐隐
# 多个
# 互动
# 更大
# 推荐使用
# 你将
# 而非
# 不低于
# 如何使用
# 都像
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
如何快速搭建自助建站会员专属系统?
android nfc常用标签读取总结
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel怎么调用外部API_Laravel Http Client客户端使用
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
javascript基于原型链的继承及call和apply函数用法分析
Laravel如何实现一对一模型关联?(Eloquent示例)
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
JavaScript如何实现倒计时_时间函数如何精确控制
如何快速建站并高效导出源代码?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
香港服务器部署网站为何提示未备案?
Android中AutoCompleteTextView自动提示
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
如何在不使用负向后查找的情况下匹配特定条件前的换行符
如何在建站宝盒中设置产品搜索功能?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Bootstrap CSS布局之列表
敲碗10年!Mac系列传将迎来「触控与联网」双革新
bing浏览器学术搜索入口_bing学术文献检索地址
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
在线教育网站制作平台,山西立德教育官网?
javascript读取文本节点方法小结
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何在万网自助建站平台快速创建网站?
如何在服务器上三步完成建站并提升流量?
如何选择可靠的免备案建站服务器?
浅谈redis在项目中的应用
如何在香港免费服务器上快速搭建网站?
简历在线制作网站免费版,如何创建个人简历?
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
iOS正则表达式验证手机号、邮箱、身份证号等
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
PythonWeb开发入门教程_Flask快速构建Web应用
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
高端云建站费用究竟需要多少预算?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
网页制作模板网站推荐,网页设计海报之类的素材哪里好?


早消失
const fadeFactor = (index + 1) * 100;
const opacity = Math.max(0, 1 - (scrollTop - triggerOffset) / fadeFactor);
$(this).css("opacity", opacity);
}
});
});
});