首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS5 -webkit-overflow-scrolling导致触摸事件停止工作

iOS5 -webkit-overflow-scrolling 导致触摸事件停止工作

在 iOS5 中,webkit-overflow-scrolling 属性被引入,用于控制元素在内容不超出视口时是否可以通过滚动进行交互。但当设置 -webkit-overflow-scrolling 为 touch 时,会导致触摸事件被截断,从而导致应用程序在触摸事件处理上出现故障。

解决方式:

  1. 禁用 -webkit-overflow-scrolling:

可以通过设置 overflow-scrolling: none 禁用 -webkit-overflow-scrolling。

代码语言:txt
复制

.element {

代码语言:txt
复制
   overflow-scrolling: none;

}

代码语言:txt
复制
  1. 使用 touch-action: pan-y:

为了解决 iOS5 中的问题,可以使用 touch-action: pan-y,这样用户可以通过在元素上滑动进行滚动,而无需截断触摸事件。

代码语言:txt
复制

.element {

代码语言:txt
复制
   touch-action: pan-y;

}

代码语言:txt
复制
  1. 使用 JavaScript 滚动:

如果需要让元素能够被滚动,即使设置了 -webkit-overflow-scrolling: touch,也可以使用 JavaScript 实现滚动。

代码语言:txt
复制

const element = document.querySelector('.element');

element.scrollTo({ top: element.scrollHeight, behavior: 'smooth' });

代码语言:txt
复制

通过以上方式,可以解决 iOS5 中 -webkit-overflow-scrolling 导致触摸事件停止工作的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

记录:关于苹果端IOS系统webkit-overflow-scrolling-touch不显示元素的兼容性问题

项目中给某个带滚动条的元素添加了 overflow:scroll以及 -webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch...;MDN定义 -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。...touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。...存在问题,恰恰是因为 ios 支持了这个属性,但是它处理的机制是: 如果一个元素同时存在 -webkit-overflow-scrolling: touch; 和 overflow:scroll属性,...其元素会在容器发生滚动的时候,跟着一起往上或者线下滚动,从而导致页面缺失。

97220

touch-action导致安卓页面无法滚动

当浏览器开始处理触摸手势时,使用的应用程序Pointer_events将收到一个pointercancel事件。...通过调用禁用浏览器处理手势preventDefault(),但也应该使用触摸动作来确保浏览器在调用任何事件侦听器之前知道应用程序的意图。...当手势开始时,浏览器将触摸元素及其所有祖先的触摸动作值与实现手势的触摸动作值(换句话说,第一个包含滚动元素)相交。...文档参考来源:touch-action 说人话 这段话阐明的就是触摸事件整个的进行过程,既然它可以通过css来约定滚动的行为,那么就意味着你写了touch-action:none,就会导致原来的页面滚动失效了...如果你想更好的使用滚动相关的体验,还是入手框架吧,不然坑太多,iscroll,better-scroll(一般滚动组件依赖的库).me-scroll(个人推荐)都是不错的选择 – 安利一篇还不错的采坑文章: 深入研究-webkit-overflow-scrolling

4.1K00

移动端必备的H5问题及解决方案

-webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ -webkit-overflow-scrolling: auto; /* 当手指从触摸屏上移开...,滚动会立即停止 */ 解决方案 1.在滚动容器上增加滚动 touch 方法 将-webkit-overflow-scrolling 值设置为 touch .wrapper { -webkit-overflow-scrolling...解决方案 监听事件禁止滑动 移动端触摸事件有三个,分别定义为 touchstart :手指放在一个DOM元素上。 touchmove :手指拖曳一个DOM元素。...原理与解决方案 解决方案一:使用 touchstart 替换 click 前面已经介绍了,移动设备不仅支持点击,还支持几个触摸事件。那么我们现在基本思路就是用 touch 事件代替click 事件。...导致可视区域变小,布局错乱。 原理与解决方案 软键盘将页面顶起来的解决方案,主要是通过监听页面高度变化,强制恢复成弹出前的高度。

3.9K42

吃透移动端 H5 与 Hybrid|实践踩坑12种问题汇总

-webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ -webkit-overflow-scrolling: auto; /*...当手指从触摸屏上移开,滚动会立即停止 */ 解决方案 1.在滚动容器上增加滚动 touch 方法 将-webkit-overflow-scrolling 值设置为 touch .wrapper {...-webkit-overflow-scrolling: touch; } 设置滚动条隐藏: .container ::-webkit-scrollbar {display: none;} 可能会导致使用...监听事件禁止滑动 移动端触摸事件有三个,分别定义为 1. touchstart :手指放在一个DOM元素上。 2. touchmove :手指拖曳一个DOM元素。...原理与解决方案 解决方案一:使用 touchstart 替换 click 前面已经介绍了,移动设备不仅支持点击,还支持几个触摸事件。那么我们现在基本思路就是用 touch 事件代替click 事件

1.2K30

吃透移动端 H5 与 Hybrid|实践踩坑12种问题汇总

-webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ -webkit-overflow-scrolling: auto; /*...当手指从触摸屏上移开,滚动会立即停止 */ 解决方案 1.在滚动容器上增加滚动 touch 方法 将-webkit-overflow-scrolling 值设置为 touch .wrapper {...-webkit-overflow-scrolling: touch; } 设置滚动条隐藏: .container ::-webkit-scrollbar {display: none;} 可能会导致使用...监听事件禁止滑动 移动端触摸事件有三个,分别定义为 1. touchstart :手指放在一个DOM元素上。 2. touchmove :手指拖曳一个DOM元素。...原理与解决方案 解决方案一:使用 touchstart 替换 click 前面已经介绍了,移动设备不仅支持点击,还支持几个触摸事件。那么我们现在基本思路就是用 touch 事件代替click 事件

2K20

12个关于移动 H5 开发的采坑问题汇总

-webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ -webkit-overflow-scrolling: auto; /*...当手指从触摸屏上移开,滚动会立即停止 */ 复制代码 解决方案 1.在滚动容器上增加滚动 touch 方法 将-webkit-overflow-scrolling 值设置为 touch .wrapper...监听事件禁止滑动 移动端触摸事件有三个,分别定义为 1. touchstart :手指放在一个DOM元素上。 2. touchmove :手指拖曳一个DOM元素。...原理与解决方案 解决方案一:使用 touchstart 替换 click 前面已经介绍了,移动设备不仅支持点击,还支持几个触摸事件。那么我们现在基本思路就是用 touch 事件代替click 事件。...导致可视区域变小,布局错乱。 原理与解决方案 软键盘将页面顶起来的解决方案,主要是通过监听页面高度变化,强制恢复成弹出前的高度。

1.5K20

挥别web移动端开发差异和经典坑

在滚动容器上增加滚动 touch 方法 .wrapper { -webkit-overflow-scrolling: touch; } 设置overflow : 设置外部 overflow 为 hidden...body { overflow-y: hidden; } .wrapper { overflow-y: auto; } MDN定义: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果.... auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。...touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。...经排查,原因如下: 原来是缓存导致的,因其#号后的参数等都被忽略,那么#以前的URL在授权前和授权后一致,其不再发送网页请求去重新获取而是直接读取缓存。

2.8K20

移动端的touch事件处理

触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。...在这个事件发生期间,调用preventDefault()事件可以阻止滚动。  touchend事件:当手指从屏幕上离开的时候触发。  touchcancel事件:当系统停止跟踪触摸的时候触发。...关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。触摸事件还包含下面三个用于跟踪触摸的属性       touches:表示当前跟踪的触摸操作的touch对象的数组。  ...targetTouches属性,却是要只有在被绑定的元素本身之上触发,才会被保存到targetTouches属性中去,因为之前的demo里,是把touchstart事件绑定到了document对象上,所以导致该属性获取的值域...启用原生滚动只需要给外层元素加上样式 -webkit-overflow-scrolling: touch; 即可,如果你的监听函数比较占用资源我们可以通过一个简单的 buffer 函数来限制它的触发间隔

1.5K20

H5 项目实用

; } // android上去掉语音输入按钮 input::-webkit-input-speech-button {display: none} // 阻止windows Phone的默认触摸事件.../*说明:winphone下默认触摸事件事件使用e.preventDefault是无效的,可通过样式来禁用,如:*/ html { -ms-touch-action:none; } //禁止winphone...默认触摸事件 // 阻止windows Phone的默认触摸事件 /*说明:winphone下默认触摸事件事件使用e.preventDefault是无效的,可通过样式来禁用,如:*/ html {...-ms-touch-action:none; } //禁止winphone默认触摸事件 ---- 30、手机拍照和上传图片 //IOS有拍照、录像、选取本地图片功能,部分Android只有选择本地图片功能...before伪类无法使用动画animation //3.border-radius不支持%单位,如要兼容,可以给radius设置一下较大的值 //4.translate百分比的写法和scale在一起会导致失效

5.2K11

第134天:移动web开发的一些总结(二)

say no 弹性滚动 上拉刷新 tap事件基础 touch触摸事件 下拉加载 300ms: 移动web页面上的click事件响应都要慢上300ms 用300ms判断是单击还是双击 (1) tap基础事件...③ 改用Fastclick的库(听过最新的zepto已经fixed掉这个bug) (2) Touch基础事件 触摸才是移动设备的交互的核心事件,支持多点触摸。...(不常用)eg:滑动页面时来了一个电话或者其他系统事件 除常见的事件属性外,触摸事件包含专有的触摸属性: touches:跟踪触摸操作的touch对象数组 targetTouches:特定事件目标的touch...但注意:event.preventDefault()会导致默认行为不发生,如scroll,导致页面不滚动!如果页面带有滚动条,就需要考虑更换解决方案。...会有几个后果:在ios下,会导致浏览器直接崩溃掉;在android下,会导致非常非常的卡。所以建议直接用js计算。

1.7K10

【Hybrid】518- 12种移动端 H5 与 Hybrid问题汇总

-webkit-overflow-scrolling: touch; /* 当手指从触摸屏上移开,会保持一段时间的滚动 */ 解决方案 1.在滚动容器上增加滚动 touch 方法 将-webkit-overflow-scrolling...监听事件禁止滑动 移动端触摸事件有三个,分别定义为 1. touchstart :手指放在一个DOM元素上。 2. touchmove :手指拖曳一个DOM元素。...原理与解决方案 解决方案一:使用 touchstart 替换 click 前面已经介绍了,移动设备不仅支持点击,还支持几个触摸事件。那么我们现在基本思路就是用 touch 事件代替click 事件。...软键盘将页面顶起来、收起未回落问题 表现 Android 手机中,点击 input 框时,键盘弹出,将页面顶起来,导致页面样式错乱。 移开焦点时,键盘收起,键盘区域空白,未回落。...导致可视区域变小,布局错乱。 原理与解决方案 软键盘将页面顶起来的解决方案,主要是通过监听页面高度变化,强制恢复成弹出前的高度。

1.3K22

深入理解RunLoop及在开发中的应用

一.RunLoop定义 RunLoop:运行循环,简单的说就是处理线程事件和管理线程的一种机制。当子线程的事件结束时,runloop将会自动休眠,app主线程中的runloop处于一直唤醒状态。...当用户触发事件时,runloop通知线程执行事件内容。 二.线程与RunLoop的关系 1.每条线程都有唯一的一个与之对应的RunLoop对象,没有线程,也就没有RunLoop存在的必要。...Source0:非基于端口port,例如触摸,滚动,selector选择器等用户触发的事件;(只包含了一个回调函数,它并不能主动触发事件) Source1:基于端口port,一些系统事件; (包含了一个...导致APP 看起来很卡。这个时候就可以开启一个子线程,把耗时的操作放到子线程中。子线程做完事情以后,就会销毁。有时我们不希望子线程大量的创建和销毁,就可以使用 RunLoop 控制子线程的生命周期。...解决NSTimer在UIScrollView滑动时停止工作的问题 默认情况下,在滚动 tableView、UIScrollView 的时候,NSTimer会停止工作,这是因为在滚动时,RunLoop

1.3K20

移动web开发问题和优化小结

5.移动端click屏幕产生200-300 ms的延迟响应 click事件因为要等待确认是否是双击事件,会有300ms的延迟(两次点击事件间隔小于300ms就认为是双击),体验并不好。...或者封装tap事件来代替click 事件,所谓的tap事件由touchstart事件+ touchmove(判断是否是滑动事件)+touchend事件封装组成。...ps:懒加载要使用js频繁操作dom,期间会导致大量重绘渲染,影响性能。 6-4.img还是background 图片的展示方式有两种,一种是以图片标签显示,一种是以背景图片显示!...-webkit-overflow-scrolling: touch; 但是,加上了这个,在ios上会产生bug。 如下布局 ?...preserve-3d; -webkit-backface-visibility: hidden; -webkit-perspective: 1000; } 10.ios系统中去掉元素被触摸时产生的半透明灰色遮罩

2K21

📚一站式解决:H5开发全攻略,看这篇让你省时又省力

img { -webkit-touch-callout: none; } ⭐️⭐️⭐️iOS 端微信 H5 页面上下滑动时卡顿 解决方案 给滚动元素加上-webkit-overflow-scrolling...,导致同时滚动两个区域的现象。...() { enableScroll(); } ant-mobile组件库解决方式 思想思路: 针对触摸滑动事件 touchmove,通过监听滑动方向和滚动元素的状态,决定是否阻止默认的滑动行为,从而防止滚动穿透...在需要锁定滚动的情况下,给 document 添加 touchstart 和 touchmove 事件的监听器,通过捕获触摸滑动事件,并根据情况阻止默认行为,从而避免滚动穿透。...在解锁滚动时,从 document 移除对触摸事件的监听器,恢复默认的滑动行为。

34520

移动端开发总结

5.移动端click屏幕产生200-300 ms的延迟响应 click事件因为要等待确认是否是双击事件,会有300ms的延迟(两次点击事件间隔小于300ms就认为是双击),体验并不好。...或者封装tap事件来代替click 事件,所谓的tap事件由touchstart事件+ touchmove(判断是否是滑动事件)+touchend事件封装组成。...ps:懒加载要使用js频繁操作dom,期间会导致大量重绘渲染,影响性能。 6-4.img还是background 图片的展示方式有两种,一种是以图片标签显示,一种是以背景图片显示!...-webkit-overflow-scrolling: touch; 但是,加上了这个,在ios上会产生bug。 如下布局 ?...preserve-3d;     -webkit-backface-visibility: hidden;     -webkit-perspective: 1000; } 10.ios系统中去掉元素被触摸时产生的半透明灰色遮罩

2.6K10
领券