博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决IOS safari下滑动的“橡皮筋”效果
阅读量:4501 次
发布时间:2019-06-08

本文共 1291 字,大约阅读时间需要 4 分钟。

在浏览器中要实现原生的滑动效果以前需要借助第三方的iscroll库来实现,现在我们有了

-webkit-overflow-scrolling: touch;

可以让我们的webApp像原生应用一样流畅的滑动了,但是在IOS 的safari下会出现讨厌的(scroll bounce)“橡皮筋”效果,我们不希望在整个document上出现这种情况,尤其是你有固定的header和footer的情况下。

下面来看如何解决

在移动端我一直喜欢这种结构的html,不用固定定位,绝对定位的#page来代替body,header,.body,.footer分别绝对定位

scss代码如下

#page{
position: absolute; left: 0; right: 0; top: 0; bottom: 0;}.header{
position: absolute; top: 0; left: 0; right: 0; @include px2rem(height, $h-header); background-color: #f2f2f0;}.footer{
position: absolute; bottom: 0; left: 0; right: 0; @include px2rem(height, $h-footer); background-color: #76c7c0;}.body{
position: absolute; @include px2rem(top, $h-header); @include px2rem(bottom, $h-footer); left: 0; right: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;}

现在来点JS

document.addEventListener('DOMContentLoaded', ready, false);document.addEventListener('touchmove', function (ev){    ev.preventDefault();}, false); function ready(){    document.querySelector('.body').addEventListener('touchmove', function (ev){        ev.stopPropagation();    }, false);}

原理很简单阻止全局的touchmove默认行为,对滚动区域的touchmove阻止冒泡就可以了

 

参考链接 

 

转载于:https://www.cnblogs.com/walle2/p/5126245.html

你可能感兴趣的文章
【题解】BZOJ P1801 dp
查看>>
杂项-软件生命周期:软件生命周期
查看>>
小程序:小程序能力
查看>>
P1578 奶牛浴场 有障碍点的最大子矩形
查看>>
OpenCV学习:体验ImageWatch
查看>>
socket_循环接收消息
查看>>
I/O基础之概念
查看>>
各种算法的优缺点:
查看>>
poj 2513 Colored Sticks 字典树
查看>>
BZOJ 1266: [AHOI2006]上学路线route Floyd_最小割
查看>>
Softmax函数
查看>>
.NET 向SQL里写入非Text类型
查看>>
HAOI2006 受欢迎的牛
查看>>
【代码备份】pocs.m
查看>>
(转)ApplicationDomain
查看>>
form注册表单圆角 demo
查看>>
python 学习之 函数参数和内置函数
查看>>
leetcode 1108
查看>>
PHP底层的运行机制与原理
查看>>
ERP笔记3-数据库的版本化
查看>>