0

我正在尝试将用户在页面上滚动的百分比作为 var 传递(参见 fiddle)。$(document).scrollTop() / $(document.height() * 100非常适合从 0 开始——页面顶部——但是当你到达底部时,它只返回滚动条顶部的位置,而不是 100%。请参阅小提琴以了解我的意思。

有谁知道在顶部获得 0 并在底部获得 100 的方法?主要的是它必须即时计算:如果有人在页面的 45.2667% 处,我希望传递该值,而不是仅在顶部或底部传递。

4

2 回答 2

0

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;
于 2012-10-17T04:21:02.373 回答
0

当滚动到底部时,您希望获取从页面顶部到滚动条顶部的百分比。尝试:

($(document).scrollTop() / ($(document).height() - $(window).height())) * 100
于 2012-10-17T03:51:53.753 回答