Javascript 如何检测滚动条';是哪一方?
我有一个div,页面上有Javascript 如何检测滚动条';是哪一方?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个div,页面上有overflow:visible和direction:rtl。 问题是IE在左侧显示滚动条,而Chrome和FF在右侧显示滚动条。 有没有办法检测滚动条的侧面 我知道如果IE在左边,其他的都在右边,你也可以选择,但是我不喜欢这个解决方案 <div style="overflow:auto; width:100px; height:100px"> <div style="direction:rtl;"> text text t
overflow:visible
和direction:rtl
。
问题是IE在左侧显示滚动条,而Chrome和FF在右侧显示滚动条。
有没有办法检测滚动条的侧面
我知道如果IE在左边,其他的都在右边,你也可以选择,但是我不喜欢这个解决方案
<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>
文本文本文本文本文本文本文本文本文本文本文本
文本文本文本文本文本文本文本文本文本文本文本
文本文本文本文本文本文本文本文本文本文本文本
这里有一个非常粗俗的想法:
获取div内第一个子元素的相对x偏移量(或从子元素的x位置减去div的x位置)
如果滚动条位于左侧,则第一个子元素的x-offset/-位置应高于滚动条位于右侧的位置,因为左侧滚动条会将元素稍微向右推
也许会有用(我手边没有IE来检查)
这里有一个未经测试的JSF概念:我这样做是为了让您可以从javascript获得滚动条位置,而不必使用可见的div
vard=$(“”);
d、 css(“溢出-y”、“滚动”);
d、 追加(“”);
$('#pivot')。追加(d);
var x=d.find('p').position().左
d、 css('display','none');
document.body.innerHTML+=x;
var pos=x<3?“右”:“左”;
document.body.innerHTML+=pos;
Scrollbar的位置似乎是由浏览器自己决定的,您可能无法通过JS阅读/设置。但也许有一些(专有的?)CSS属性会迫使它在一边或另一边?我不知道你是否可以像@cmdecho所显示的那样“破解”它。但是我不喜欢它。我更喜欢以某种方式检测它。有很多方法可以解决这个问题,是的,但我的意思是,既然它看起来无法直接设置滚动条:left/right
属性或类似的东西,而且它只会作为其他设置的副作用发生,我怀疑是否有办法读取它的位置。这根本不是一个公开属性(我猜是这样)。我不喜欢为添加额外的DOM来强制特定的方面。好主意。我想我会试试看。谢谢。我在那里做了一些修改,我确实完成了任务(注意,只有IE才能看到它)@IgalSt note如果你放大到你能得到的最大值。左小于5,因为滚动条的宽度变小了
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;