html5禁用浏览器下拉,HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码...

H5手指下滑弹出负一屏, 阻止移动端浏览器内置下拉刷新功能,具体实例代码如下所示:

默认隐藏,负一屏,手指下滑即可弹出显示,上滑隐藏

正式内容

import $ from 'jquery';

export default {

name: 'About',

data() {

return {

}

},

methods: {

homescroll() {

let scroll = document.querySelector('.scroll-box');

let outer_scroll = document.querySelector('.outer-scroll');

let topbox = document.querySelector('.top-box');

let topboxHeight;

let touchStart;

let touchDis;

// 注意如果绑定触摸时的事件则会在下拉时从手指的下拉位置开始下拉 该事件在手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

scroll.ontouchstart = function (event) {

touchStart = 0;

touchDis = 0;

// 说明:由于手指头是多点触摸到屏幕上的我们所以e.originalEvent.targetTouches的

// 意思是一个手指触碰点集合我们只需要获取第一个点就可以了所以

touchStart = event.targetTouches[0].pageY;

console.log(touchStart);

};

// 当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

scroll.ontouchmove = (event) => {

// 从顶部向下拖拽

let touchPos = event.targetTouches[0].pageY;

touchDis = touchPos - touchStart;

if (!topboxHeight) {

topboxHeight = topbox.offsetHeight;

}

console.log(topboxHeight);

if (document.documentElement.scrollTop == 0 && touchDis >= 100) {

topbox.style.display = 'block';

$(scroll).stop().animate({ top: topboxHeight }, 'fast');

} else if (topbox.style.display == 'block' && touchDis < -10) {

console.log(touchDis);

$(scroll).stop().animate({ top: '0' }, 'fast');

setTimeout(() => { topbox.style.display = 'none'; this.$forceUpdate(); }, 100);

event.preventDefault();

}

};

}

},

mounted() {

document.addEventListener('touchMove', e => {

e.preventDefault();

})

this.homescroll();

}

}

.scroll-box {

width: 100%;

position: absolute;

top: 0;

background-color: #fff;

}

.loading {

background: gray;

width: 100vw;

height: 40vh;

display: none;

overflow: hidden;

font-size: 40px;

}

.scroll-box {

background: #ccc;

height: 60vh;

color: #fff;

}

在PC上用鼠标下拉可以弹出负一屏,但是在移动端手指下拉会变为刷新,无法弹出负一屏,解决办法:

实际操作效果如下:

总结

到此这篇关于HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码的文章就介绍到这了,更多相关html5手指下滑弹出内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持! ad51e517755f8fd6a7ec83ced4ecfaf3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值