介绍

vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果。

组件

:style="{'background-color':backgroundColor }"

class="vd-wrapper"

>

class="vd"

ref="vd"

>

export default {

name: "vd",

props: {

backgroundColor: {

type: String,

default: "#ffffff"

}

},

data() {

return {};

},

mounted() {

this.vd = this.$refs["vd"];

this.vd.addEventListener("touchstart", this.touchstartEvent);

this.vd.addEventListener("touchmove", this.touchmoveEvent, {

passive: false // 阻止默认事件时,设置passive为false,提高性能

});

},

methods: {

getPoint(e) {

return {

x: e.touches ? e.touches[0].pageX : e.clientX,

y: e.touches ? e.touches[0].pageY : e.clientY

};

},

touchstartEvent(e) {

this.startPoint = this.getPoint(e);

},

touchmoveEvent(e) {

if (!this.startPoint) return;

const scrollTop = this.vd.scrollTop; // 距离页面顶部的距离

const curPoint = this.getPoint(e);

const moveY = curPoint.y - this.startPoint.y; // 纵向移动的距离

// 下拉

if (moveY > 0) {

// 如果在顶部,阻止浏览器默认的滚动,避免触发bounce

if (scrollTop <= 0) e.preventDefault();

// 上拉

} else {

const scrollHeight = this.vd.scrollHeight; // 全文区域的高度

const clientHeight = this.vd.clientHeight; // 可见区域的高度

const scrollBottom = scrollHeight - clientHeight - scrollTop; // 距离页面底部的距离

// 如果在底部,阻止浏览器默认的滚动,避免触发ios的bounce效果

if (scrollBottom <= 0) e.preventDefault();

}

}

}

};

.vd-wrapper {

height: 100vh;

}

.vd {

width: 100%;

height: 100%;

overflow-y: auto;

-webkit-overflow-scrolling: touch;

}

调用

为了方便调用,笔者已经上传到npm

npm安装依赖npm i vue-disbounce

安装完以后,在app.vue文件调用

import VueDisbounce from "vue-disbounce";

export default {

components: {

VueDisbounce

}

};

作者

SuperIron

相关链接

vue 停止页面滚动_Vue禁止h5页面iOS浏览器下拉bounce效果相关推荐

  1. js禁止苹果页面底部滚动_Vue.js 实现禁止 h5 页面在 ios 浏览器内置的下拉 bounce 效果...

    介绍 vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果. 组件 :style="{'background-col ...

  2. html游戏禁止微信浏览器下拉,JavaScript实现禁止微信浏览器下拉回弹效果

    这篇文章主要为大家详细介绍了JavaScript禁止微信浏览器下拉回弹效果的方法,具有一定的参考和学习JavaScript的价值,对JavaScript感兴趣的小伙伴们可以参考一下本篇文章 本文实例为 ...

  3. html 禁止页面回弹,JavaScript禁止微信浏览器下拉回弹效果

    本文实例为大家分享了JavaScript禁止微信浏览器下拉回弹的效果,供大家参考,具体内容如下 方法1: var overscroll = function(el){ el.addEventListe ...

  4. html5 css橡皮筋效果,阻止移动端浏览器下拉橡皮筋效果(下拉滚动露底)

    前言 最近项目有个需求:需要移动端浏览器下的橡皮筋效果,但是页面内部的存在div框需要存在滚动.由此,遇到的问题与解决过程,记录如下. 声明:此处只讨论js控制部分,css的设置(例:overflow ...

  5. 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...

    大家可能会遇到开发公众号的时候,下来会出来源地址,下面的代码可以解决禁止下拉的问题~ 禁止下拉 .scroll{ position:absolute; overflow:scroll; -webkit ...

  6. 监听页面滚动触发事件,页面停止滚动触发事件

    监听页面滚动触发事件,页面停止滚动触发事件 核心代码 data() {return {timer: null,isTipVisible: true} } methods: {handleScrollS ...

  7. 制作html5页面的软件,制作h5页面的软件

    原标题:制作h5页面的软件 制作h5页面的软件有很多,今天我们以一款非常容易上手的软件来给大家分享制作的过程. 为了展现更多的长页面设置过程,本教程中的完成效果与步骤中采用图片并不一致.您在制作自己的 ...

  8. 小程序IOS页面下拉回弹效果

    小程序IOS页面下拉回弹效果 ​ 小程序在ios系统上的橡皮筋回弹效果,是ios特有的,目前小程序没有特有的方法去控制.根据业务需求不想要这个回弹的效果,故此记录一下解决方案: 方案一:当页面内容比较 ...

  9. 手机页面下拉刷新效果

    在做手机页面的时候我用的是MUI封装好的JavaScript. 为了实现下拉刷新的功能,大多数H5框架都是通过DIV模拟下拉回弹动画,在Android手机上,DIV动画常常会出现卡顿现象,mui通过使 ...

最新文章

  1. java写游戏的聊天怎么写_怎么用JAVA编写一个打字游戏
  2. R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed
  3. 人人直播带货的时代,推荐模型为什么比不过李佳琦们?
  4. 模型的第一层:详解torch.nn.Embedding和torch.nn.Linear
  5. NTU课程笔记:MAS 714 algorithm and theory of computing(1):introduction
  6. 【行业应用】一文讲通电力数字化转型
  7. Android Studio模拟器的root权限
  8. Oracle中视图的创建和处理方法
  9. 华为手机销量超过苹果,华为能算是全球第二大手机厂家吗?
  10. Sqlite学习笔记(五)SQLite封锁机制
  11. 双语学习xml系列----之一 什么是xml?(第一小节)
  12. 在.net中调用vb脚本(ITpro专用的vb脚本,而不是浏览器vb脚本)
  13. 深交所互动平台_是否存以互动平台回复替代公告、炒作股价的情形?容大感光收深交所关注函...
  14. Lingo软件使用教程
  15. 仿微信在线聊天源码 DuckChat聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
  16. android 人脸 动画表情包,巧笑表情包怎么制作 Android好玩的emoji人脸表情软件推荐...
  17. 计算机一体机怎样连接无线网络连接不上,笔记本电脑无线打印机连接不上怎么办...
  18. 清华大学出版社与SAP签署战略合作协议
  19. 利用函数模板解决双倍功能
  20. 知识更新越来越快,但是学习起来越来越困

热门文章

  1. 直立车模控制中三种滤波算法简单分析(清华卓晴)
  2. 未来固码市场的可延展性
  3. CentOS 7.5_1804.iso镜像下载
  4. 网易极客战记-KITHGARD地牢--迷一般的 Kithmaze (需解锁)
  5. 设计模式(C++实现)
  6. day3-基础数据类型(int、bool、str)
  7. C#实现DLT直接线性变换(Direct Linear Transform)算法
  8. 最好用的_古书制作工具_古籍排版工具_古文排版_自动生成古书_多种古书风格_古籍制作工具
  9. linux下基于ipmsg协议的飞鸽传书(一)
  10. 程序员,你离年薪100万差什么?