この記事では主にJavaScriptWeChatブラウザでプルダウンのリバウンド効果を無効にする方法を詳しく紹介します。JavaScriptに興味のある友人はこの記事を参照してください
。この記事では、参考のために、JavaScript が WeChat ブラウザーでプルダウンのリバウンドを禁止する効果を共有します。具体的な内容は次のとおりです
方法 1:
<script type="text/javascript"> var overscroll = function(el){ el.addEventListener('touchstart', function(){ var top = el.scrollTop; var totalScroll = el.scrollHeight; var currentScroll = top + el.offsetHeight; if(top === 0) { el.scrollTop = 1; }else if(currentScroll === totalScroll){ el.scrollTop = top - 1; } }); el.addEventListener('touchmove', function(evt){ if(el.offsetHeight < el.scrollHeight){ evt._isScroller = true; } }); } overscroll(document.querySelector('.scroll'));//哪里需要可以局部滚动,添加一个“scroll”的class document.body.addEventListener('touchmove', function(evt) { if(!evt._isScroller){ evt.preventDefault(); } }); </script>
この方法の利点と欠点:
利点 : ローカル スクロールをサポートします。
欠点: ブラウザ自体がページを超えたスクロールを無効にし、ローカル スクロールの場所に「scroll」クラスを追加する必要があります。
注: 同じページに複数の部分スクロールがある場合は、
overscroll(document.querySelector('.scroll');
を
for(var i=0;i<document.querySelectorAll('.scroll').length;i++){ overscroll(document.querySelectorAll('.scroll')[i]); }
方法 2:
<script type="text/javascript"> function stopDrop(){ var lastY;//最后一次y坐标点 $(document.body).on('touchstart', function(event) { lastY = event.originalEvent.changedTouches[0].clientY;//点击屏幕时记录最后一次Y度坐标。 }); $(document.body).on('touchmove', function(event) { var y = event.originalEvent.changedTouches[0].clientY; var st = $(this).scrollTop(); //滚动条高度 if (y >= lastY && st <= 10) {//如果滚动条高度小于0,可以理解为到顶了,且是下拉情况下,阻止touchmove事件。 lastY = y; event.preventDefault(); } lastY = y; }); } </script>
これの長所と短所メソッド:
利点: ページを超えたブラウザ自体のスクロールをサポートします
欠点: 部分的なスクロールをサポートしません
以上がJavaScript は WeChat ブラウザのプルダウンのリバウンド効果を無効にする機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。