如何检测滚动条的一侧?

时间:2011-08-03 11:58:43

标签: javascript jquery html css

我在页面上有overflow:visibledirection:rtl的div。 问题是IE显示左侧的滚动条,而Chrome和FF显示右侧的滚动条。 是否有任何js方法来检测滚动条的一侧?

我知道你可以选择,如果IE在左边,其他所有在右边,但我对这个解决方案不满意

3 个答案:

答案 0 :(得分:4)

这是一个非常黑客的想法:

获取div中第一个子元素的相对x偏移量(或者简单地从子项的x位置减去div的x位置)

如果滚动条在左侧,则第一个子项的x-offset / -position应该高于右侧栏的值,因为左侧滚动条会将元素向右推一点。

也许它会起作用(我没有IE方便检查它)

这是一个未经测试的概念:http://jsfiddle.net/tKGS2/

答案 1 :(得分:2)

<div style="overflow:auto; width:100px; height:100px">
    <div style="direction:rtl;">
        text text text text text text text text text text 
        text text text text text text text text text text 
        text text text text text text text text text text
    </div>
</div>

答案 2 :(得分:0)

我做了这样你就可以从javascript获得滚动条位置,而不必有可见的div http://jsfiddle.net/tKGS2/27/

var d = $("<div></div>");
d.css("overflow-y","scroll");
d.append('<p/>');

$('#pivot').append(d);

var x = d.find('p').position().left
d.css('display','none');

document.body.innerHTML += x;
var pos = x < 3 ? "right" : "left";
document.body.innerHTML += pos;