传递滚动值作为百分比作为参数,计算两点之间的距离

Pass scroll value as percentage as argument, calculate distance between two points?

本文关键字:两点 距离 之间 滚动 百分比 参数 计算      更新时间:2023-09-26

我的代码:

var vert = $(this).scrollTop();
function scrollBetween(startPoint, endPoint, name){
        var progressNumber;
        progressNumber = (1 / (endPoint - startPoint)) * (vert - startPoint);
        if (progressNumber >= 0 && progressNumber <= 1) {
            name.progress(progressNumber);
        }
        else if(progressNumber < 0) {
            name.progress(0);
        }
        else if(progressNumber > 1) {
            name.progress(1);
        }
    }

一个叫做

的例子
scrollBetween(300, 700, anim1);

因此,正如目前所写的,我有两个像素点被传递给我的函数。我不能弄清楚的是如何将这些点转换为总视口的百分比。所以我想实现这个:

scrollBetween(2%, 15%, anim1);

但是我尝试过的各种方法总是出错。我知道我不能像上面的^一样传递它,但我还没能弄清楚如何获得%而不是像素。

我想用%代替px,因为我想让页面保持响应。

谢谢。

@krisph帮我解决了这个问题,我做了以下操作来获得响应的百分比值:

var vert = $(this).scrollTop();
var docHeight = $(document).height();
function scrollBetween(startPoint, endPoint, name){
    var progressNumber;
    startPoint = (docHeight/100) * startPoint;
    endPoint = (docHeight/100) * endPoint;

    progressNumber = (1 / (endPoint - startPoint)) * (vert - startPoint);
    if (progressNumber >= 0 && progressNumber <= 1) {
        name.progress(progressNumber);
    }
    else if(progressNumber < 0) {
        name.progress(0);
    }
    else if(progressNumber > 1) {
        name.progress(1);
    }
}
scrollBetween(2, 15, anim1);