滚动条出现或消失时,为什么调整大小事件不会触发?

时间:2013-01-31 15:46:26

标签: javascript browser

当浏览器的垂直滚动条出现或消失时,视口或浏览器窗口的宽度会发生变化(可以使用jQuery的$(window).width()方法进行测试),但不会触发窗口的resize事件。怎么样?

3 个答案:

答案 0 :(得分:2)

重新调整大小是由实际浏览器窗口更改大小驱动的事件。

如果我的内容适合屏幕,我会从页面中删除元素怎么办?这不是一个窗口重新调整大小。或者,如果我将页面的溢出更改为隐藏。滚动条将消失,但这又不是一个大小。

我得到的是:滚动条可见性并不一定意味着有重新调整大小的事件。

答案 1 :(得分:0)

使用overflowchanged事件而不是调整大小。

答案 2 :(得分:-1)

浏览器不会将其识别为调整大小。然后,如果您需要“滚动条出现”和“滚动条消失”事件,请使用以下代码:

<div id="footerDiv" style="float: left; height: 1px; width: 100%;"></div>



bodywidth = 0;

$(document).ready(function () {

    bodywidth = $("#footerDiv").width();
    setInterval(scrollbarHelper, 100);

});

function scrollbarHelper() { 

    var newwidth = $("#footerDiv").width();

    if (bodywidth !== newwidth) {

        if (bodywidth > newwidth) {
            alert("Scrollbar Appeared");
            // Your code here
        }
        else if (bodywidth < newwidth) {
            alert("Scrollbar Disppeared");
            // Your code here
        }

        bodywidth = newwidth;
    }
}