2016-09-02 7 views
0

誰かが私を助けてくれますか? divを垂直方向にスクロールするときに要素にクラスを追加(または表示)しようとしていますが、水平方向にスクロールするときにそのクラスを削除(または非表示)します。divを垂直方向にスクロールするときにJQueryを追加し、水平方向にスクロールするときにクラスを削除します

以下のコードは動作しません。ありがとう、ありがとう!

window.onload = function() { 
    $('#myDiv').scroll(function() { 
     var hScroll = $(this).scrollLeft(); 
     var vScroll = $(this).scrollTop(); 
     if (hScroll > 0){ 
      $('#element').removeClass("v_class").addClass("h_class"); 
     } 
     if (vScroll > 0){ 
      $('#element').removeClass("h_class").addClass("v_class"); 

     } 
    }); 
} 

答えて

0

はこのような彼らの古い位置に対してチェック、ゼロに対してチェックしないでください:

var oldScrollLeft = $('#myDiv').scrollLeft(); 
var oldScrollTop = $('#myDiv').scrollTop(); 

    $('#myDiv').scroll(function() { 
     var hScroll = $(this).scrollLeft(); 
     var vScroll = $(this).scrollTop(); 

     //if the vertical scroll bar is in the same position after a scroll has occurred we must be scrolling horizontally, remove the vertical class and add the horizontal class. 
     if(oldScrollTop == vScroll){ 
       $('#element').removeClass("v_class").addClass("h_class"); 
     } 
     //else we must be scrolling vertically, remove the horizontal class and add the vertical class. 
     else{ 
       $('#element').removeClass("h_class").addClass("v_class"); 
     } 
     oldScrollLeft = $(this).scrollLeft(); 
     oldScrollTop = $(this).scrollTop(); 
    }); 
}; 
+0

は、ジェイソンをありがとう! –

関連する問題