0

ユーザーがページ上でスクロールしたパーセンテージをvarとして渡そうとしています(fiddleを参照)。$(document).scrollTop() / $(document.height() * 100ページの上部である0から開始するのに最適ですが、下部に到達すると、スクロールバーの上部の位置のみが返され、100%は返されません。私が何を意味するかを見るためにフィドルを見てください。

誰かが上で0、下で100を取得する方法を知っていますか?主なことは、オンザフライで計算する必要があるということです。誰かがページの45.2667%にいる場合は、上部や下部ではなく、その値を渡す必要があります。

4

2 に答える 2

0

下にスクロールしたときのページの上部からスクロールバーの上部までのパーセンテージを取得する必要があります。試す:

($(document).scrollTop() / ($(document).height() - $(window).height())) * 100
于 2012-10-17T03:51:53.753 に答える
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 に答える