0

我有下一个问题:当我滚动3/4页面时,我需要运行一些事件。我这样做:

var limit_height = 3/4 * jQuery('body').height();

jQuery(window).scroll(function() {

        if (jQuery(window).scrollTop() > limit_height) {

                    alert('You are scrolled 3/4 of page!');

       }

});

所以,当我看控制台时(我检查 current scrollTop

我有更多的时间,当电流scrollTop < 3/4 * body_height(所以limit_height)。因此事件不运行。

如果可能的话,请帮助我,我有错误的地方。

4

1 回答 1

0

这里最终发生的是您的计算不包括窗口高度。因此,当为了将页面滚动超过 3/4 时,您已经处于最大 scrollTop 状态,除非页面与视口相比具有非常大的高度。

以下是解决方法:

limit_height = 3/4 * (jQuery('body').height() - jQuery(window).height());
jQuery(window).scroll(function() {
        if (jQuery(window).scrollTop() > limit_height) {
                    alert('You are scrolled 3/4 of page!');
       }
});

上面的计算将排除窗口高度,因为假设主体为2000 像素高,而视口为700像素高。根据您的计算,限制为1500px,但是您可能拥有的最大滚动顶部为1300px,因为您无法在视口本身内向下滚动,因此您的条件将永远不会满足。

于 2012-10-09T05:29:24.467 回答