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 相关文章推荐
写入cookie的JavaScript代码库 cookieLibrary.js
Oct 24 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
jQuery如何获取动态添加的元素
Jun 24 Javascript
Javascript中浏览器窗口的基本操作总结
Aug 18 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
jQuery中实现text()的方法
Apr 04 jQuery
js get和post请求实现代码解析
Feb 06 Javascript
npm全局环境变量配置详解
Dec 15 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP面向对象概念
2011/11/06 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
Javascript - HTML的request类
2007/01/09 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
javascript实现信息增删改查的方法
2015/07/25 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
JavaScript获取select中text值的方法
2017/02/13 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python异常处理操作实例详解
2018/05/10 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
python实现图像拼接功能
2020/03/23 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
2014年五一促销活动方案
2014/03/09 职场文书
学习两会精神心得范文
2014/03/17 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
学校重阳节活动总结
2015/03/24 职场文书
超市店长竞聘书
2015/09/15 职场文书