2017-03-27 8 views
1

私は、このコードを使用して自分のページにオートスクロール機能を追加しました。JSページスクロールでvarを変更するには?

注:すべてのセクションが100VHあると

 <div id="autoScroller"> 
      <div id="up" onclick="section--; currentSection();"></div> 
      <div id="down" onclick="section++; currentSection();"></div> 
     </div> 

BTN

<a href="#about" data-target="btn2" title="">About</a> 

オートスクロールBTN .hash

ページナビゲーションと呼ばれるクラスが含まれてJS

var maximumSections = $('.hash').length; 
var section = 1; 
function currentSection(){ 
if (section > maximumSections){ 
    section = 1 
} else if (section < 1){ 
    section = maximumSections 
} 
    $("a[data-target='btn"+ section +"']").click(); 
} 

私もこれを使うautoに少し私のURLを調整する新しいセクションが

$(document).bind('scroll',function(e){ 
$('.hash').each(function(){ 
    if (
     $(this).offset().top < window.pageYOffset + 20 
    && $(this).offset().top + $(this).height() > window.pageYOffset + 20 
    ) { 
     window.location.hash = $(this).attr('data-location'); 
    } 
}); 
}); 

にスクロールされたとき、私は立ち往生していますどこに次のステップがあります。 現在、ページの下部に手動でスクロールし、自動スクロールボタンをクリックすると、varセクションがvarセクション= 1の初期状態から更新されていないため、セクション2にスクロールします。

答えて

0

はねえ、私はそれを考え出しました!

 window.section = $(this).attr('data-btn'); 

私はすべてのセクションに、「データ・BTN」属性を追加し、それらを1から値ました - 5

はその後、私のバインド機能の「データ・ロケーション」行の下の行を追加しました。

と思われます。これを試してみてくれてありがとう。私はこれが良い練習であるかどうか分かりませんが、私はエラーが出ず、うまくいきます!

-1

この:

window.onscroll = function() {adjustSection()}; 
var lastScroll = 0; 
function adjustSection() {  
    if (document.body.scrollTop > lastScroll) 
     section++; 
    else 
     section--; 

    lastScroll = document.documentElement.scrollTop; 
} 
+0

このコードがOPに役立つ理由/方法の説明を追加してください。これにより、今後の視聴者からの回答が得られます。詳細については、[このメタ質問とその回答](http://meta.stackoverflow.com/q/256359/215552)を参照してください。 –

+0

これはこのアプリケーションでは機能しませんでした。私は本当にバインドロジックの内部からセクション変数を再定義する方法が必要です。 –

関連する問題