JavaScript禁止微信浏览器下拉回弹效果


Posted in Javascript onMay 16, 2017

本文实例为大家分享了JavaScript禁止微信浏览器下拉回弹的效果,供大家参考,具体内容如下

方法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”的class。
注:如果同一个页面多个局部滚动,需要将
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 相关文章推荐
不同浏览器对回车提交表单的处理办法
Feb 13 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
js点击文本框弹出可选择的checkbox复选框
Feb 03 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
May 28 Javascript
React Native自定义控件底部抽屉菜单的示例
Feb 08 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
Oct 27 Javascript
解决await在forEach中不起作用的问题
Feb 25 Javascript
jQuery实现div跟随鼠标移动
Aug 20 #jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 #jQuery
bootstrap响应式表格实例详解
May 15 #Javascript
VUE多层路由嵌套实现代码
May 15 #Javascript
JavaScript制作简单的框选图表
May 15 #Javascript
vue.js 使用v-if v-else发现没有执行解决办法
May 15 #Javascript
AngularJs 常用的过滤器
May 15 #Javascript
You might like
php中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
js实现自定义路由
2017/02/04 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
python分割文件的常用方法
2014/11/01 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
自荐信格式的六要素
2013/09/21 职场文书
企业给企业的表扬信
2014/01/13 职场文书
销售人员自我评价
2014/02/01 职场文书
《长城》教学反思
2014/02/14 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
Python自然语言处理之切分算法详解
2021/04/25 Python
利用Python实现模拟登录知乎
2022/05/25 Python