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 相关文章推荐
js removeChild 障眼法 可能出现的错误
Oct 06 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
Jun 25 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
JS函数节流和函数防抖问题分析
Dec 18 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
JS实现json数组排序操作实例分析
Oct 28 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
javascript json 新手入门文档
2009/12/03 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
easyui validatebox验证
2016/04/29 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
nohup的用法
2012/11/26 面试题
投标单位介绍信
2014/01/09 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
导师就业推荐信范文
2014/05/22 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
方法汇总:Python 安装第三方库常用
2022/04/26 Python