完美解决手机浏览器顶部下拉出现网页源或刷新的问题


Posted in Javascript onNovember 30, 2017

问题如下图所示:

完美解决手机浏览器顶部下拉出现网页源或刷新的问题

一般处理此类问题都会有一个属性:”event.preventDefault()”,但是如果直接使用会导致页面的内部滚动也失效导致不能滚动,我所处理的方式也与其类似。

因为滑动区域是向走的,所以滑动块的顶部到浏览器顶部的距离最大为0(其余为负值[$('#bodycthead').offset().top]),当为0的时候说明已经回到了顶部,继续向下拉动的时候就不应该有反应,可以禁止默认滑动,而向上拉动的时候应该取消默认的滑动,所以应该将”event.preventDefault()”封装成一个函数。

需要做的就是判断是向上滑动还是向下滑动,当接触屏幕的时候记录一个Y值(scroll_start = e.changedTouches[0].clientY;),移动的时候会产生一个Y值(e.changedTouches[0].clientY),两个值得差值(e.changedTouches[0].clientY-scroll_start)如果是正值说明是向下滑动,如果是负值则是向上滑动。

添加事件监听:

var scroll_start=0;//定义滑动时的起点
function handler(){//禁止默认滑动函数
 event.preventDefault();
}
document.addEventListener("touchstart",function(e){
 scroll_start = e.changedTouches[0].clientY;//设置起点为触摸时的点
 if($('#bodycthead').offset().top==0){//如果触摸时是滑动块在顶部则禁用默认滑动
  document.addEventListener('touchmove', handler, false);
 }
});
document.addEventListener("touchmove",function(e){
 $("title").html(e.changedTouches[0].clientY-scroll_start);
 if($('#bodycthead').offset().top==0){//想做的是中断滑动并禁用默认滑动,暂时没找到中断的方法
  document.addEventListener('touchmove', handler, false);
 }
 if((e.changedTouches[0].clientY-scroll_start)<0){//如果是向上滑动则恢复默认滑动
  document.removeEventListener('touchmove', handler, false);
 }
});

暂时没做到中断滑动并禁止默认滑动效果,欢迎大家指导!

以上这篇完美解决手机浏览器顶部下拉出现网页源或刷新的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
Jun 27 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
js实现简单锁屏功能实例
May 27 Javascript
JQuery查找DOM节点的方法
Jun 11 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
JS简单添加元素新节点的方法示例
Feb 10 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
Vue中nprogress页面加载进度条的方法实现
Nov 13 Javascript
微信小程序抽奖组件的使用步骤
Jan 11 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 #Javascript
html中通过JS获取JSON数据并加载的方法
Nov 30 #Javascript
微信小程序中吸底按钮适配iPhone X方案
Nov 29 #Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 #jQuery
写给小白看的JavaScript异步
Nov 29 #Javascript
3种vue组件的书写形式
Nov 29 #Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 #Javascript
You might like
php实现的简易扫雷游戏实例
2015/07/09 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python向图片里添加文字
2019/11/26 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python关于变量名的基础知识点
2020/03/03 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
金讯Java笔试题目
2013/06/18 面试题
什么是抽象
2015/12/13 面试题
师范生自荐信
2013/10/27 职场文书
网吧消防安全制度
2014/01/28 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
教师节横幅标语
2014/10/08 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
win sever 2022如何占用操作主机角色
2022/06/25 Servers