vue 停止页面滚动_Vue禁止h5页面iOS浏览器下拉bounce效果
介绍
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效果相关推荐
- js禁止苹果页面底部滚动_Vue.js 实现禁止 h5 页面在 ios 浏览器内置的下拉 bounce 效果...
介绍 vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果. 组件 :style="{'background-col ...
- html游戏禁止微信浏览器下拉,JavaScript实现禁止微信浏览器下拉回弹效果
这篇文章主要为大家详细介绍了JavaScript禁止微信浏览器下拉回弹效果的方法,具有一定的参考和学习JavaScript的价值,对JavaScript感兴趣的小伙伴们可以参考一下本篇文章 本文实例为 ...
- html 禁止页面回弹,JavaScript禁止微信浏览器下拉回弹效果
本文实例为大家分享了JavaScript禁止微信浏览器下拉回弹的效果,供大家参考,具体内容如下 方法1: var overscroll = function(el){ el.addEventListe ...
- html5 css橡皮筋效果,阻止移动端浏览器下拉橡皮筋效果(下拉滚动露底)
前言 最近项目有个需求:需要移动端浏览器下的橡皮筋效果,但是页面内部的存在div框需要存在滚动.由此,遇到的问题与解决过程,记录如下. 声明:此处只讨论js控制部分,css的设置(例:overflow ...
- 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...
大家可能会遇到开发公众号的时候,下来会出来源地址,下面的代码可以解决禁止下拉的问题~ 禁止下拉 .scroll{ position:absolute; overflow:scroll; -webkit ...
- 监听页面滚动触发事件,页面停止滚动触发事件
监听页面滚动触发事件,页面停止滚动触发事件 核心代码 data() {return {timer: null,isTipVisible: true} } methods: {handleScrollS ...
- 制作html5页面的软件,制作h5页面的软件
原标题:制作h5页面的软件 制作h5页面的软件有很多,今天我们以一款非常容易上手的软件来给大家分享制作的过程. 为了展现更多的长页面设置过程,本教程中的完成效果与步骤中采用图片并不一致.您在制作自己的 ...
- 小程序IOS页面下拉回弹效果
小程序IOS页面下拉回弹效果 小程序在ios系统上的橡皮筋回弹效果,是ios特有的,目前小程序没有特有的方法去控制.根据业务需求不想要这个回弹的效果,故此记录一下解决方案: 方案一:当页面内容比较 ...
- 手机页面下拉刷新效果
在做手机页面的时候我用的是MUI封装好的JavaScript. 为了实现下拉刷新的功能,大多数H5框架都是通过DIV模拟下拉回弹动画,在Android手机上,DIV动画常常会出现卡顿现象,mui通过使 ...
最新文章
- java写游戏的聊天怎么写_怎么用JAVA编写一个打字游戏
- R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed
- 人人直播带货的时代,推荐模型为什么比不过李佳琦们?
- 模型的第一层:详解torch.nn.Embedding和torch.nn.Linear
- NTU课程笔记:MAS 714 algorithm and theory of computing(1):introduction
- 【行业应用】一文讲通电力数字化转型
- Android Studio模拟器的root权限
- Oracle中视图的创建和处理方法
- 华为手机销量超过苹果,华为能算是全球第二大手机厂家吗?
- Sqlite学习笔记(五)SQLite封锁机制
- 双语学习xml系列----之一 什么是xml?(第一小节)
- 在.net中调用vb脚本(ITpro专用的vb脚本,而不是浏览器vb脚本)
- 深交所互动平台_是否存以互动平台回复替代公告、炒作股价的情形?容大感光收深交所关注函...
- Lingo软件使用教程
- 仿微信在线聊天源码 DuckChat聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
- android 人脸 动画表情包,巧笑表情包怎么制作 Android好玩的emoji人脸表情软件推荐...
- 计算机一体机怎样连接无线网络连接不上,笔记本电脑无线打印机连接不上怎么办...
- 清华大学出版社与SAP签署战略合作协议
- 利用函数模板解决双倍功能
- 知识更新越来越快,但是学习起来越来越困
热门文章
- 直立车模控制中三种滤波算法简单分析(清华卓晴)
- 未来固码市场的可延展性
- CentOS 7.5_1804.iso镜像下载
- 网易极客战记-KITHGARD地牢--迷一般的 Kithmaze (需解锁)
- 设计模式(C++实现)
- day3-基础数据类型(int、bool、str)
- C#实现DLT直接线性变换(Direct Linear Transform)算法
- 最好用的_古书制作工具_古籍排版工具_古文排版_自动生成古书_多种古书风格_古籍制作工具
- linux下基于ipmsg协议的飞鸽传书(一)
- 程序员,你离年薪100万差什么?