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 相关文章推荐
jquery图片上下tab切换效果
Mar 18 Javascript
jquery文本框中的事件应用以输入邮箱为例
May 06 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
Dec 18 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
Mar 17 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
webpack 模块热替换原理
Apr 09 Javascript
react-native动态切换tab组件的方法
Jul 07 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
django序列化serializers过程解析
2019/12/14 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
房产委托公证书
2014/04/08 职场文书
应届大专生求职信
2014/06/26 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏