###scroll アクション 指定の高さ以上になったら処理を一回実行させる
スクロールアクションを行っているときに、
if(scroll >= BODYHEIGHT)になったら一回だけ処理を実行させたいです。
現状では何回も処理が行われるので、処理を抜け出したいです。
また、スクロールアクションは負荷がかかりやすいと拝見したので、
clearTimeout設定しています。他に負荷がかかりにくい方法があれば、
教えていただければ幸いです。
###該当のソースコード
javascript
1// contents 高さ取得 2getContentsHeight = function() { 3 let contentsHeight = Math.max.apply(null, [document.body.clientHeight, document.body.scrollHeight, document.documentElement.scrollHeight, document.documentElement.clientHeight]); 4 let Height = (contentsHeight * 0.5); 5 return Height; 6}; 7 8const BODYHEIGHT = getContentsHeight(); 9 10// スクロール量取得 11let getScrollHeight = null 12window.onscroll = function() { 13 14 clearTimeout(getScrollHeight); 15 getScrollHeight = setTimeout(function() { 16 let documentElement = null; 17 if (navigator.userAgent.toLowerCase().match(/webkit|msie 5/)) { 18 documentElement = document.body; 19 } else { 20 documentElement = document.documentElement; 21 } 22 let scroll = Math.floor(documentElement.scrollTop); 23 if(scroll >= BODYHEIGHT){ 24 // 一回だけ行いたい 25 } 26 }, 100 ); 27};
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/24 05:42