Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 jQuery中的滚动条出现/消失事件?_Javascript_Jquery_Scroll_Scrollbar_Jquery Events - Fatal编程技术网

Javascript jQuery中的滚动条出现/消失事件?

Javascript jQuery中的滚动条出现/消失事件?,javascript,jquery,scroll,scrollbar,jquery-events,Javascript,Jquery,Scroll,Scrollbar,Jquery Events,jQuery中有没有一种简单的方法可以检测在有溢出的div上滚动条何时出现和消失:auto?(像一个事件?祈祷吧…) (我不想看div内容的高度)据我所知,没有这方面的活动。 然而,你“可以”写你自己的特殊事件,我想你必须检查 对于高度和宽度 如果.innerHeight超过.outerHeight 元素的值。正如其他人所说,没有简单的方法。这里有一些我过去用来检测滚动条是否存在的代码 // Used like $('#my-id').hasScrollbar(); jQuery.fn.has

jQuery中有没有一种简单的方法可以检测在有溢出的div上滚动条何时出现和消失:auto?(像一个事件?祈祷吧…)


(我不想看div内容的高度)

据我所知,没有这方面的活动。
然而,你“可以”写你自己的特殊事件,我想你必须检查 对于高度和宽度

如果
.innerHeight
超过
.outerHeight

元素的值。

正如其他人所说,没有简单的方法。这里有一些我过去用来检测滚动条是否存在的代码

// Used like $('#my-id').hasScrollbar();

jQuery.fn.hasScrollbar = function() {
    var scrollHeight = this.get(0).scrollHeight;

    //safari's scrollHeight includes padding
    if ($.browser.safari)
        scrollHeight -= parseInt(this.css('padding-top')) + parseInt(this.css('padding-bottom'));

    if (this.height() < scrollHeight)
        return true;
    else
        return false;
}
//像$('#my id').hasScrollbar()一样使用;
jQuery.fn.hasScrollbar=函数(){
var scrollHeight=this.get(0).scrollHeight;
//safari的滚动高度包括填充
if($.browser.safari)
scrollHeight-=parseInt(this.css('padding-top'))+parseInt(this.css('padding-bottom'));
if(this.height()

在添加或删除div中的内容后,您需要手动调用此函数,可能只有在可见元素上调用它时才起作用,但这比从头开始要好。

实现此目的的另一种方法是使用scrollLeft或scrollTop检查是否存在滚动条:

//nudge the scrollbar away from its starting position

$('#your_selector').scrollLeft(1);

//A value of 0 is assigned if the scrollbars are at their default position, 
//or are abscent

if($('#your_selector').scrollLeft() !== 0) return true;

//put the scrollbar back to its starting position

$('#your_selector').scrollLeft(0);

谢谢,我试图避免这种情况,因为我在相对定位的div中使用绝对定位的div。溢出:自动工作(神奇的),但它不是那么容易计算内部元素的高度。这看起来像是最简单的解决方案,但我相信它也会触发回流。看看OrganicPanda在另一个线程上的解决方案:可能的重复