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使用手册之二 DOM操作
Mar 24 Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
js自定义事件及事件交互原理概述(二)
Feb 01 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
学习JavaScript设计模式(继承)
Nov 26 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
详解RequireJs官方使用教程
Oct 31 Javascript
JavaScript插件Tab选项卡效果
Nov 14 Javascript
详解vue+css3做交互特效的方法
Nov 20 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php实现头像上传预览功能
2017/04/27 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
javascript new 需不需要继续使用
2009/07/02 Javascript
Javascript Throttle &amp; Debounce应用介绍
2013/03/19 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
利用python求相邻数的方法示例
2017/08/18 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
经理职责范文
2013/11/08 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书