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 相关文章推荐
javascript 树控件 比较好用
Jun 11 Javascript
JS比较2个日期间隔的示例代码
Apr 15 Javascript
JavaScript中对象介绍
Dec 31 Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
JS设置CSS样式的方式汇总
Jan 21 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
Vue filter介绍及其使用详解
Oct 21 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
使用TS来编写express服务器的方法步骤
Oct 29 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代码
2012/07/17 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
浅析JS运动
2015/12/28 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python爬虫常用的模块分析
2014/08/29 Python
使用python实现knn算法
2017/12/20 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
中文系学生自荐信范文
2013/11/13 职场文书
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
挂科检讨书范文
2014/02/20 职场文书
产假请假条
2014/04/10 职场文书
司法助理专业自荐书
2014/06/13 职场文书
铅球加油稿100字
2014/09/26 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
68句权威创业名言
2019/08/26 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
python 单机五子棋对战游戏
2022/04/28 Python