2017-09-01 11 views
1

jQueryまたはJavascriptを使用してプログラムでスクロールアップすると、同じ矢印キー(または他のキー)をバインドする方法はありますか?jQueryやJavascriptで「スクロールアップ」矢印と「スクロールダウン」矢印をバインドする方法はありますか?

は私がアップ&矢印をクリックダウンを検出するために、このコードを使用しています:

$(document).keydown(function(e) { 
    switch(e.which) { 
     case 38: // up 
     console.log("up"); 

     break; 

     case 40: // down 
     console.log("down"); 
     break; 

     default: return; // exit this handler for other keys 
    } 
    e.preventDefault(); // prevent the default action (scroll/move caret) 
}); 

だから私はこのような場合には下向きの矢印をクリックしたとき、それは「マウスはスクロールダウン」を呼び出す必要があります。

理由:携帯端末で上下にスワイプし、マウスのスクロールを使用して、ウェブサイトのポップアップモーダルでコンテンツをスクロールできます。ラップトップを持ちマウスがない場合はどうなりますか?矢印アップ/ダウンは動作しません...

+0

これは非常に複雑です。スクロールは1つではなく、ピクセル単位で数千ピクセルのイベントのサイズ変更と似ています... –

+0

あなたのコードは上向き矢印と下向き矢印でうまくいきます(私はそれをチェックして、コンソールに正しく記録します)。あなたの問題は何ですか –

+0

[div内の要素にスクロールするにはどうすればいいですか?](https://stackoverflow.com/questions/635706/how-to-scroll-to-an-element-inside-a-div ) –

答えて

1

私は矢印キーがすでにスクロール(それは私のためにスタックオーバーフローではうまく機能します)のために働くはずだと思いますが、そうでなければ、 "scrollTo"この方法は、あなたのために働くことができます:

var startingY = 0; 
 

 
$(document).keydown(function(e) { 
 
    switch(e.which) { 
 
     case 38: 
 
     startingY -= 20; 
 
     window.scrollTo(0, startingY); 
 
     
 
     break; 
 

 
     case 40: 
 
     startingY += 20; 
 
     window.scrollTo(0, startingY); 
 
     
 
     break; 
 

 
     default: return; 
 
    } 
 
    e.preventDefault(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div style="height:5000px"></div>

関連する問題