前提
こちらのURLの画面スクロールの禁止を実装したいです
https://designsupply-web.com/knowledgeside/3332/
要望
no-scrollというクラスを付与することによりホイールスクロールが禁止されると認識しているのですが、addClassでクラスを付与しても画面スクロールが禁止されません。
画面スクロールが禁止されるにはどうすればいいか教えていただきたいです。
また、再度スクロールを解除する方法も教えていただきたいです。
補足
inviewを使用し、画面内に.scrollクラスが入ると画面スクロールが禁止される機能を作っています。
html
1<body> 2 3 <p>文章1</p> 4 <p>文章2</p> 5 <p>文章3</p> 6 <div class="scroll"> 7 <p>文章4</p> 8 </div> 9 10 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 11 <script src="script.js"></script> 12 <script type="text/javascript" src="jquery.inview-master/jquery.inview.js"></script> 13 14</body> 15
jQuery
1 2 3// PCでマウスホイールでのスクロール操作の制御 4$(function(){ 5 $(window).on('wheel',function(e){ 6 if($(".no-scroll").length) { 7 e.preventDefault(); 8 } 9 }); 10}); 11 12 13// モバイル端末でのタッチスクロール操作の制御 14$(function(){ 15$(window).on('touchmove.noScroll',function(e){ 16 if($(".no-scroll").length) { 17 e.preventDefault(); 18 } 19 }); 20}); 21 22 23/*画面内に入ると.no-scrollクラス付与*/ 24 25$(function() { 26$('.scroll').on('inview', function(event, isInView){ 27 if (isInView ) { 28 $('.scroll').addClass(".no-scroll"); 29 } 30 31 }); 32}); 33 34
回答2件
あなたの回答
tips
プレビュー