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获取css的color值返回RGB的方法
Dec 18 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
Jul 18 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
Dec 08 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
Vue.js中 v-model 指令的修饰符详解
Dec 03 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 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
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
js实现一个简易计算器
2020/03/30 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
JS实现简单打字测试
2020/06/24 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python实现发送邮件功能
2017/07/22 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
EJB的基本架构
2016/09/22 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
求职信写作要突出重点
2014/01/01 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
大专学生求职自荐信
2014/07/06 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android