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


Posted in HTML / CSS onApril 10, 2020

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

<template>
  <div class="outer-scroll">
    <div class="loading top-box">
        默认隐藏,负一屏,手指下滑即可弹出显示,上滑隐藏
    </div>

    <div class="scroll-box">
        <h1>正式内容</h1>
    </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手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码的文章就介绍到这了,更多相关html5手指下滑弹出内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
今天学到的CSS最新技术(与图片背景相关)
Dec 24 HTML / CSS
CSS3中各种颜色属性的使用教程
May 17 HTML / CSS
CSS3制作酷炫的条纹背景
Nov 09 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
Jul 25 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
微信端html5页面调用分享接口示例
Mar 14 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
Jul 16 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
Apr 14 HTML / CSS
移动端HTML5开发神器之vconsole详解
Dec 15 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
Feb 24 HTML / CSS
canvas 基础之图像处理的使用
Apr 10 #HTML / CSS
用canvas显示验证码的实现
Apr 10 #HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 #HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
Apr 08 #HTML / CSS
HTML5 textarea高度自适应的两种方案
Apr 08 #HTML / CSS
html5给汉字加拼音加进度条的实现代码
Apr 07 #HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 #HTML / CSS
You might like
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
使用requests库制作Python爬虫
2018/03/25 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
局域网标准
2016/09/10 面试题
出纳的岗位职责
2013/11/09 职场文书
音乐教学案例
2014/01/30 职场文书
中学生操行评语
2014/04/24 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
趣味运动会加油词
2015/07/18 职场文书