前提・実現したいこと
jQueryを使用して、画面でスクロールした方向が上下どちらか判定したいと思い、下記のコードを挿入しました。
下にスクロールしたときにコンソールに「down」を表示、
上にスクロールしたときにコンソールに「up」を表示の想定です。
jQuery
1var start_pos = 0; 2$(window).scroll(function(e){ 3 var current_pos = $(this).scrollTop(); 4 if (current_pos > start_pos) { 5 console.log('down'); 6 } else { 7 console.log('up'); 8 } 9 start_pos = current_pos; 10});
発生している問題・エラーメッセージ
chrome、firefox、edgeでは思ったとおりの表示になるのですが、
IE11で下にスクロールした際「up」と表示されてしまいます。
原因
検証したところ、スクロールを止めた時点で current_pos と start_pos が同じ値になってしまうのが原因のようでした。
scrollTop() で2~3回同じ値が取れているようです。
どのように調整するのが良いか、ご教授いただけないでしょうか。
恐らく、下記の方法で解決するとは思いますがjqueryに関する質問をする場合は使用しているjqueryのバージョンが必要です。