我有一个文件比较的代码:
http://jsfiddle.net/CrN6X/现在它能做到我需要的:
- 一个可以垂直滚动的大div
- 两个可以水平滚动的小div
这样我就可以很容易地比较我的文件,但是我有一个问题:只有当我滚动到最底部时才能访问下方的滚动条。
我该怎么做才能使它们漂浮或将滚动条移动到另一个div中,以便始终可见,这样我就不需要滚动另一个div到底部才能访问它们了?
我有一个文件比较的代码:
http://jsfiddle.net/CrN6X/现在它能做到我需要的:
这样我就可以很容易地比较我的文件,但是我有一个问题:只有当我滚动到最底部时才能访问下方的滚动条。
我该怎么做才能使它们漂浮或将滚动条移动到另一个div中,以便始终可见,这样我就不需要滚动另一个div到底部才能访问它们了?
$("#div1").scroll(function () {
$("#div2").scrollTop($("#div1").scrollTop());
$("#div2").scrollLeft($("#div1").scrollLeft());
});
$("#div2").scroll(function () {
$("#div1").scrollTop($("#div2").scrollTop());
$("#div1").scrollLeft($("#div2").scrollLeft());
});
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<div id="div1" style="float:left;overflow:auto;height:100px;width:200px;">
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
</div>
<div id="div2" style="float:right;overflow:auto;height:100px;width:200px;">
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
</div>
为了避免使用鼠标滚轮滚动时出现卡顿的效果,我们需要禁用第二个滚动事件触发。请查看下面我所提供的方法:
var ignoreScrollEvents = false
function syncScroll(element1, element2) {
element1.scroll(function (e) {
var ignore = ignoreScrollEvents
ignoreScrollEvents = false
if (ignore) return
ignoreScrollEvents = true
element2.scrollTop(element1.scrollTop())
})
}
syncScroll($("#div1"), $("#div2"))
syncScroll($("#div2"), $("#div1"))
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<div id="div1" style="float:left;overflow:auto;height:100px;width:200px;">
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
</div>
<div id="div2" style="float:right;overflow:auto;height:100px;width:200px;">
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
<p>lulz</p>
</div>