window.pageYOffset返回不准确的值

时间:2014-11-26 18:24:54

标签: javascript jquery css

我需要能够检测元素边界何时在视口中 - 足够简单。要做到这一点,我使用jQuery的scroll事件。设置基本测试后,我注意到window.scrollYwindow.pageYOffset返回的值不准确。

enter image description here

每个div的高度为1000px,但我的window.scrollYwindow.pageYOffset返回756?

有什么想法吗?我有什么遗失的东西吗?

(最新版本的Chrome& Firefox中似乎就是这种情况)

1 个答案:

答案 0 :(得分:1)

除非您需要支持IE7或其他内容,否则您不应该使用这些元素来确定视口中是否有某些内容。像这样的东西是非常优越的:

function isInWindow(el){
    var rect = el.getBoundingClientRect(),
        $window = $(window);

    return (
        (rect.top >= 0) && 
        (rect.left >= 0) && 
        (rect.right <= $window.width()) && 
        (rect.bottom <= $window.height())
    );
}

isInWindow($element.get(0));

// or for multiple

$element.each(function(){
    isInWindow(this);
});

我知道您可能仍然对价值观不同的原因感到好奇,但这应该会让您了解是否在浏览器窗口中。