javascript – 滚动滚动其他滚动条
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 滚动滚动其他滚动条,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1675字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 滚动滚动其他滚动条](/upload/InfoBanner/zyjiaocheng/722/ff4dd0acf7124cffbf5f6ed17266dfc6.jpg)
我有3个带滚动条的div.
如果我在div 1中滚动,我想在相反的方向滚动div 2和3.
滚动的距离应该是div 1距离的一半.
这就是我现在拥有的(小部分,休息在jsfiddle),适用于1 div.
$("#textBox1").scroll(function () {
console.log("scroll 1");
var offset = $("#textBox1").scrollTop() - scrollPosTBox1;
var half_offset = offset/2.0;
disable1 = true;
if(disable2 == false) {
$("#textBox2").scrollTop(scrollPosTBox2 - half_offset);
}
if(disable3 == false) {
$("#textBox3").scrollTop(scrollPosTBox3 - half_offset);
}
disable1 = false;
});
但是,如果我尝试为其他2个div进行相同的操作,那么我就不能再滚动任何东西了.
这是因为div 1触发div 2,div 2触发返回div 1.
我尝试使用禁用代码修复此问题,但它没有帮助.
有人能帮我吗?
解决方法:
不要不尊重@EmreErkan和@Simon的努力.这是一个无需点击的版本.
var $boxes = $("#textBox1,#textBox2,#textBox3"),
active;
$boxes.scrollTop(150);
// set initial scrollTop values
updateScrollPos();
// bind mouseenter:
// 1) find which panel is active
// 2) update scrollTop values
$boxes.mouseenter(function () {
active = this.id;
updateScrollPos();
});
// bind scroll for all boxes
$boxes.scroll(function (e) {
$this = $(this);
// check to see if we are dealing with the active box
// if true then set scrolltop of other boxes relative to the active box
if(this.id == active){
var $others = $boxes.not($this),
offset = $this.scrollTop()-$this.data("scroll"),
half_offset = offset / 2;
$others.each(function(){
$this = $(this);
$this.scrollTop($this.data("scroll") - half_offset);
});
}
});
// utility function:
// assign scrollTop values element's data attributes (data-scroll)
function updateScrollPos() {
$boxes.each(function(){
$this = $(this);
$this.data("scroll",$this.scrollTop());
});
}
内容总结
以上是互联网集市为您收集整理的javascript – 滚动滚动其他滚动条全部内容,希望文章能够帮你解决javascript – 滚动滚动其他滚动条所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。