scrollTop获取每个像素

时间:2014-10-01 06:54:46

标签: javascript pixel scrolltop

当我使用函数scrollTop来获取顶部的像素数量时,我会收到1,4或20,...取决于我滚动的速度。

$(window).scroll(function(){
    var position = $(document).scrollTop();
    console.log(position);
)};

我正在构建一个网站,我需要获得每个像素。这是因为我正在检查何时显示某个位置值。例如:

if(position === 1200){
    // do something
}

现在,我收到的scrollTop函数值无法实现。现在我使用下面的代码可以计算每个像素,但这只能在网站不高时才能正常工作。如果该站点的高度超过3000px,它将开始抖动,因为它需要lang来计算像素。

var viewportFirstPosition = $(document).scrollTop();
$(window).scroll(function(){
    var inc;

    var viewportHeight = $(window).height();
    var viewportNewPosition = $(document).scrollTop();

    if(viewportNewPosition > viewportFirstPosition){
       inc=1;
    }
    else{
       inc=-1;
    }

    while(viewportFirstPosition !== viewportNewPosition){
        viewportFirstPosition += inc;
        console.log(viewportFirstPosition); // 1, 2, 3, 4, 5, ...
    }
}

我怎么能以不同的方式做到这一点?没有抖动:) 谢谢!

1 个答案:

答案 0 :(得分:1)

不能获取每个像素的scrollTop(),这是因为该函数需要几毫秒才能工作并返回值(取决于它运行的机器),如果你滚动高速时,它将无法检查所有像素。

我建议您将控制语句更改为:

if (position >= 1200){
    // do something
}

获取正好1200像素的位置几乎是不可能的。

即使您拥有能够检测每个像素的最佳PC,在较慢的设备上也无法工作,因此唯一的解决方案是检查大约1200px 大于1200px < / em>,但正好是1200px