Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测滚动条';是哪一方?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何检测滚动条';是哪一方?

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

我有一个div,页面上有
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;