2012-05-14 12 views
0

ユーザーがスクロール(視点)したときにjqueryを使用してアクションを検出して実行すると、上から高速(つまり1秒)ページの下部の位置にページの位置? (ページがスクロール可能な場合のみ)jquery measureスクロールの速度 - ページの上部から下部への速すぎるスクロール

htmlマーク(ページ上の要素)ではなく、相対値に基づいて汎用的な解決策を探したい場合。

注: DOM準備完了後のユーザービューポイントがページの先頭にあることを確認する必要があると考える必要があります。次の2つの要素に基づいて、AA、時限イベントを使用することができます

+0

、... – gdoron

+0

を検索「機能」を使用するが、約スクロールの速度を測定する疑いがありません。スクロールアクションの実行方法のみ。 – abrahab

+0

最初に、それは_ "速すぎる" _ではありません "_速く" _する必要があります。 ** ** – gdoron

答えて

1

あなたはいくつかの要素を使用して、要素間の平均速度をうまくことができ、これを拡張したい場合、これは

Check if element is visible after scrolling

非常に正確になります: )jQueryを使ってスクロールについてあまりにも多くの質問があります

<script> 
var finalFired = false; 
var now = new Date().getTime(); 
function isScrolledIntoView(elem){ 
    var docViewTop = $(window).scrollTop(); 
    var docViewBottom = docViewTop + $(window).height(); 

    var elemTop = $(elem).offset().top; 
    var elemBottom = elemTop + $(elem).height(); 

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
} 
$(document).scroll(function(){ 
    if(!finalFired){ 
     if(isScrolledIntoView("div:last")){ 
      finalFired = true; 
      var then = new Date().getTime(); 
      alert(then-now); 
     } 
    } 
}); 
</script> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
<div style="height:100%;">Test</div> 
+0

ありがとう、それはまさに私が探しているものですが、私はページに特別な要素を追加したくありません。私は、htmlに追加されていない普遍的なソリューションを探しています。多分windows.heightをエリアに分け、それらによってスピードを検出するでしょうか? 「2つの要素に基づいたタイムドイベント」を開始するには、問題はないが、最後の要素についての質問。腐って、相対的価値に基づいて普遍的な解決をしたい。 – abrahab

+0

上記のコードのようなものを使用して結果を得ることができますが、あなたが望むやり方で作業するには修正が必要な場合があります。 – Bloafer

+0

ありがとうございます。 :)あなたが投稿したリンクのコードと同じようなものを作っています。素晴らしいソリューションですが、私はdiv(コンテンツに関連する)なしでそれを作ることが可能だと思うので、ベストはないと思います - もっと普遍的ですが、私にとってはそれで十分です – abrahab

関連する問題