我正在尝试将用户在页面上滚动的百分比作为 var 传递(参见 fiddle)。$(document).scrollTop() / $(document.height() * 100
非常适合从 0 开始——页面顶部——但是当你到达底部时,它只返回滚动条顶部的位置,而不是 100%。请参阅小提琴以了解我的意思。
有谁知道在顶部获得 0 并在底部获得 100 的方法?主要的是它必须即时计算:如果有人在页面的 45.2667% 处,我希望传递该值,而不是仅在顶部或底部传递。
Sactor 是正确的,但它不适用于所有位置。
如果你也想考虑页面的结尾,我认为你想计算“查看”而不是“滚动”的页面数量
如果您正在考虑查看的页面量而不是滚动量,那么您可以使用以下内容:
从逻辑上讲,当您打开页面时,您会查看一定数量的页面。所以你总能得到,
( ( $(document).scrollTop() + $(window).height() ) / $(document).height() ) * 100
别的:
如果您只想单独滚动,请使用
var extreme = $(document).height() - $(window).height(),
percent = 0;
if( $(document).scrollTop() < extreme )
percent = $(document).scrollTop() / $(document.height() * 100;
else
percent = 100;
当滚动到底部时,您希望获取从页面顶部到滚动条顶部的百分比。尝试:
($(document).scrollTop() / ($(document).height() - $(window).height())) * 100