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 相关文章推荐
10 套华丽的CSS3 按钮小结
Oct 03 HTML / CSS
使用简单的CSS3属性实现炫酷读者墙效果
Jan 08 HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
Dec 30 HTML / CSS
css3 实现元素弧线运动的示例代码
Apr 24 HTML / CSS
html5使用canvas绘制文字特效
Dec 15 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
Mar 21 HTML / CSS
HTML5 canvas基本绘图之文字渲染
Jun 27 HTML / CSS
iframe跨域的几种常用方法
Nov 11 HTML / CSS
详解如何使用rem或viewport进行移动端适配
Aug 14 HTML / CSS
浅析HTML5页面元素及属性
Jan 20 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
Aug 07 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 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生成缩略图的类代码
2008/10/02 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
Prototype Function对象 学习
2009/07/12 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
django接入新浪微博OAuth的方法
2015/06/29 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python tkinter和exe打包的方法
2020/02/05 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
2014年护理工作总结范文
2014/11/14 职场文书
寒山寺导游词
2015/02/03 职场文书
天下第一关导游词
2015/02/06 职场文书
奔腾年代观后感
2015/06/09 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers