广告
返回顶部
首页 > 资讯 > 精选 >HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能
  • 884
分享到

HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能

2023-06-09 11:06:47 884人浏览 八月长安
摘要

小编给大家分享一下HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!H5手指下滑弹出负一屏, 阻止

小编给大家分享一下HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

<template>  <div class="outer-scroll">    <div class="loading top-box">        默认隐藏,负一屏,手指下滑即可弹出显示,上滑隐藏    </div>    <div class="scroll-box">        <h2>正式内容</h2>    </div>  </div></template><script>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();  }}</script><style scoped>.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;}</style>

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

<!-- 给 body 加样式 overflow:hidden --><body style="overflow:hidden">    <!-- TODO: --></body>

实际操作效果如下:

HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能

以上是“html5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: HTML5如何实现手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能

本文链接: https://www.lsjlt.com/news/255746.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作