2012-04-08 3 views
2

ユーザーが、私はこのコードを使用して、URLハッシュを更新し、私のページの下部に達する毎:jQueryを使用して、特定の要素が表示されるたびに何かを行うには?今

var new_page_value = 1; 
$(window).scroll(function() { 
    if($(window).scrollTop() == $(document).height() - $(window).height()) { 
     new_page_value += 1; 
     window.location.hash = 'page-' + new_page_value; 
    } 
}); 

クラス「ページでのdivの任意の過去のユーザーがスクロール私は同じことを行うことができますどのように"下のコードでは?例えば、ユーザが1ページ目にスクロールすると、#1ページ目にハッシュが更新されますが、2ページ目にスクロールすると、#2ページに更新されます。そして、最初のページにスクロールすると、ハッシュは再び#page-1に更新されます。基本的に、ハッシュはdiv内にあるものに基づいて更新する必要があります。

<div class="page" data-page-num="1"></div> 

<br /><br /><br /><br /><br /><br /><br /><br /><br /> 

<div class="page" data-page-num="2"></div> 

<br /><br /><br /><br /><br /><br /><br /><br /><br /> 

<div class="page" data-page-num="3"></div> 
+2

'








は'ページのスタイルを設定するための最良の方法ではありません... **:**) – gdoron

+0

そのコードは可能性がありので、私はちょうど改行タグを入れて@gdoron可能な解決策をテストするための例として使用されています。私は実際にそれを使用していない。 – TK123

+0

「div」のうち1つ以上が表示されている場合は、どちらを選択しますか? – MrWhite

答えて

0

このコードは役立つかもしれませんが、クライアント側では少し集中するかもしれません。

var new_page_value = 1; 
$(window).scroll(function() { 
    $(".page").each(function() { 
     var position = $(this).position(); 
     if($(window).scrollTop() == position.top) { 
      new_page_value += 1; 
      window.location.hash = 'page-' + new_page_value; 
     } 
    }); 

    if($(window).scrollTop() == $(document).height() - $(window).height()) { 
     new_page_value += 1; 
     window.location.hash = 'page-' + new_page_value; 
    } 
}); 
+0

これは期待どおりに動作していないようです。私は問題の問題をテストするために、今のところボトムコードを削除しました。 window.location.hashをアラート(new_page_value)に置き換えると、ハッシュは決して更新されません。 – TK123

関連する問題