如何使用 jQuery 实现两个 Div 之间平滑同步的滚动?
同步滚动变得流畅
使用 jQuery 实现两个 DIV 之间的同步滚动可以通过以下代码实现:
$(document).ready(function() { $("#div1").scroll(function () { $("#div2").scrollTop($("#div1").scrollTop()); }); $("#div2").scroll(function () { $("#div1").scrollTop($("#div2").scrollTop()); }); });
登录后复制
但是,这段代码遇到了两个挑战:
1. Div大小不同导致滚动不同步
计算比例滚动位置需要确定滚动内容的百分比。这可以通过以下方式实现:
percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight);
登录后复制
将另一个 div 的高度和偏移量乘以该百分比可确保按比例滚动。
2. Firefox 中的滚动不太流畅
为了防止 Firefox 中的滚动事件无限循环,请考虑暂时解除监听器绑定:
var $divs = $('#div1, #div2'); var sync = function(e) { var $other = $divs.not(this).off('scroll'), other = $other.get(0); var percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight); other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight); setTimeout(function(){ $other.on('scroll', sync ); }, 10); } $divs.on( 'scroll', sync);
登录后复制
此解决方案在调整之前断开监听器scrollTop,在短暂延迟后重新绑定它,并确保在 Firefox 中平滑滚动。
要演示此解决方案,请查看交互式 JSFiddle:http://jsfiddle.net/b75KZ/5/
以上是如何使用 jQuery 实现两个 Div 之间平滑同步的滚动?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
Windows 11 KB5054979中的新功能以及如何解决更新问题
3 周前
By DDD
如何修复KB5055523无法在Windows 11中安装?
2 周前
By DDD
Inzoi:如何申请学校和大学
3 周前
By DDD
如何修复KB5055518无法在Windows 10中安装?
2 周前
By DDD
Roblox:Dead Rails - 如何召唤和击败Nikola Tesla
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

在元素个数不固定的情况下如何通过CSS选择第一个指定类名的子元素在处理HTML结构时,常常会遇到元素个数不�...
