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 相关文章推荐
可以随进度显示不同颜色的css3进度条分享
Apr 11 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
Nov 04 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
关于css中margin的值和垂直外边距重叠问题
Oct 27 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
Apr 10 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
Dec 02 HTML / CSS
Html5实现iPhone开机界面示例代码
Jun 30 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
Apr 10 HTML / CSS
HTML5所有标签汇总及标签意义解释
Mar 12 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
Aug 22 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
Apr 17 HTML / CSS
HTML5实现移动端点击翻牌功能
Oct 23 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.ini中文版
2006/10/09 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
给初学PHP的5个入手程序
2006/11/23 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP的拦截器实例分析
2014/11/03 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
详解如何运行vue项目
2019/04/15 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python中global与nonlocal比较
2014/11/21 Python
Python函数中定义参数的四种方式
2014/11/30 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python实现读取json文件到excel表
2017/11/18 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
业务员岗位职责
2013/11/16 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
遗嘱范文
2015/08/07 职场文书