jQuery找到最大用户滚动值

时间:2015-02-17 03:53:45

标签: javascript jquery

我想在用户滚动页面时获取最大值。我已设置超时,例如当用户继续滚动时,我需要找到他们在页面上滚动的位置并存储最大值

var $window = $(window);
var $body = $(document.body);
$window.on('scroll', function() {
    clearTimeout(jQuery.data(this, "scrollCheck"));
    jQuery.data(this, "scrollCheck", setTimeout(function() {
        var scrolled_val = $body.scrollTop();
        var max_value = Math.max(scrolled_val,scrolled_val);
        console.log("max value is " + max_value);
        perc = scrolled_val / $body.height() * 100;
        rounded = Math.round(perc / 10) * 10;
        console.log("% value is " + rounded);
    }, 250));
});

上面的代码没有显示最大值,而是显示用户滚动到的每个值,而我需要显示最大值。有什么想法吗?

UPDATE 设法使用数组实现此功能。感谢您的意见

var $window = $(window);
var $body = $(document.body);
var a = []; 
$window.on('scroll', function() {
    clearTimeout(jQuery.data(this, "scrollCheck"));
    jQuery.data(this, "scrollCheck", setTimeout(function() {
        var scrolled_val = $body.scrollTop();
        a.push(scrolled_val);
        console.log("value is " + scrolled_val);
        console.log(a);
        var max = Math.max.apply(Math,a);
        console.log("max value is " + max);
        perc = max / $body.height() * 100;
        rounded = Math.round(perc / 10) * 10;
        console.log("% value is " + rounded);
    }, 250));
});

1 个答案:

答案 0 :(得分:0)

让我们说有问题的对象是id为" my_div"

的div
var objDiv = getElementById("my_div");

objDiv.scrollTop将包含div当前滚动位置自上而下的滚动值,因此如果向下滚动5像素,它将返回5。 objDiv.scrollLeft将在水平滚动条中包含左侧的滚动值。您可以将此值存储在变量中,然后稍后重置scrollHeight属性。

var scrollValue = objDiv.scrollTop;

然后再

objDiv.scrollHeight = scrollValue;