0
var amount = document.getElementsByClassName("cart-total-qty")[0].innerHTML;
console.log(amount);

var body = document.body,
    html = document.documentElement;

var height = Math.max( body.scrollHeight, body.offsetHeight, 
                       html.clientHeight, html.scrollHeight, html.offsetHeight );
var tenPercent = height*.9

window.addEventListener("scroll", function() {
    scrollAmount = window.scrollY;
    if(scrollAmount == tenPercent){
    alert("It's happening (Insert Ron Paul)");
    }
});

在我上面的代码中,我使用我在此处找到的示例获取页面的高度:如何使用 JavaScript 获取整个文档的高度?

然后,一旦用户滚动到页面的底部百分之十,我就会尝试触发一个事件。问题是scrollAmount永远不会达到 10%height

在我的示例height中返回为 1280,并且scrollAmount在滚动时永远不会返回高于 1040,但奇怪的是,如果我更改浏览器的高度,scrollAmount当我滚动到底部时,我会得到不同的结果。

4

1 回答 1

1

首先,预计scrollAmount会返回一个明显低于文档内容高度的值。如果仔细观察,它的最大值实际上是(内容高度 - 窗口高度)。可以这样想:假设您的内容仅比可用窗口高度长一个像素,在这种情况下,最大值应该是scrollAmount多少?我希望它是 1。所以tenPercent = height*.9tenPercent = (height-window.innerHeight)*.9

其次,您以 100 像素左右的步长滚动。当然可能存在一些动画,但事件不会针对scrollAmount. 在滚动期间,不太可能scrollAmount完全等于tenPercent。所以替换你scrollAmount == tenPercentscrollAmount > tenPercent

于 2013-11-11T07:51:05.637 回答