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 相关文章推荐
移动Web—CSS为Retina屏幕替换更高质量的图片
Dec 24 HTML / CSS
详解CSS3中的box-sizing(content-box与border-box)
Apr 19 HTML / CSS
使用 CSS3 中@media 实现网页自适应的示例代码
Mar 24 HTML / CSS
Html5 postMessage实现跨域消息传递
Mar 11 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
Jul 06 HTML / CSS
html+css实现自定义图片上传按钮功能
Sep 04 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
Apr 01 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
Aug 08 HTML / CSS
h5移动端调用支付宝、微信支付的实现
Jun 08 HTML / CSS
CSS 实现Chrome标签栏的技巧
Aug 04 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
redis 队列操作的例子(php)
2012/04/12 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php strftime函数的详细用法
2018/06/21 PHP
php swoft框架实例用法
2020/12/22 PHP
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Python实现list反转实例汇总
2014/11/11 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python 切分数组实例解析
2019/11/07 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
大学生入党思想汇报
2014/01/01 职场文书
中文专业求职信
2014/06/20 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
个人授权委托书
2014/09/15 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
单位政审意见范文
2015/06/04 职场文书