我想在用户滚动页面时获取最大值。我已设置超时,例如当用户继续滚动时,我需要找到他们在页面上滚动的位置并存储最大值
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));
});
答案 0 :(得分:0)
让我们说有问题的对象是id为" my_div"
的divvar objDiv = getElementById("my_div");
objDiv.scrollTop将包含div当前滚动位置自上而下的滚动值,因此如果向下滚动5像素,它将返回5。 objDiv.scrollLeft将在水平滚动条中包含左侧的滚动值。您可以将此值存储在变量中,然后稍后重置scrollHeight属性。
var scrollValue = objDiv.scrollTop;
然后再
objDiv.scrollHeight = scrollValue;