如上图,.fb-box是一个大div,包含着页面上的所有元素,包括所看到的那个弹窗.dialog-img,并且设置了height:100%;-webkit-overflow-scrolling:touch 定位需要,-webkit-overflow-scrolling:touch;也需要。 ?
要实现这个效果很简单,只需要加一行css代码即可: -webkit-overflow-scrolling : touch; 可用以下网页测试: <! overflow-y : auto; background-color : cyan; -webkit-overflow-scrolling 如果把-webkit-overflow-scrolling那行注释掉,就会发现滚动得很慢。 实际上,Safari真的用了原生控件来实现,对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。 从前端开发的角度讲,只需要知道CSS的属性-webkit-overflow-scrolling是真的创建了带有硬件加速的系统级控件,所以效率很高。
这时候可以使用-webkit-overflow-scrolling:touch这个属性,让滚动条产生滚动回弹的效果,就像ios原生的滚动条一样流畅 ? ? 简单说明一下: -webkit-overflow-scrolling :控制元素在移动设备上是否使用滚动回弹效果。 auto:使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。 在safari上,使用了-webkit-overflow-scrolling:touch之后,页面偶尔会卡住不动。 解决问题的方法: 第一步:将使用-webkit-overflow-scrolling的元素的定位取消或手动改成position:static; 第二步:将使用-webkit-overflow-scrolling
DOCTYPE html></script><code style="border-radius: 0px; -<em>webkit-overflow-scrolling</em> seller : ''}</span></code><code style="border-radius: 0px; -webkit-overflow-scrolling: touch; text-align encode=js&select=%23hitokoto" defer></script><code style="border-radius: 0px; -<em>webkit-overflow-scrolling</em>
项目中给某个带滚动条的元素添加了 overflow:scroll以及 -webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch ;MDN定义 -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。 这个问题很早就存在,现在也一直存在,而且 Android 之所以不存在这个现象,是因为 Android 压根不支持 -webkit-overflow-scrolling: touch; 这个属性,而 ios 存在问题,恰恰是因为 ios 支持了这个属性,但是它处理的机制是: 如果一个元素同时存在 -webkit-overflow-scrolling: touch; 和 overflow:scroll属性, 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch; } 但是这种方法,如果元素过多过杂的情况下,可能会出现一些其他兼容性问题,目前没有找到更好的解决办法
webkit-scrollbar-thumb以及::-webkit-scrollbar-track-piece的背景颜色情况下,如果不设置::-webkit-scrollbar宽度(高度),滚动条是不会出现的 2、-webkit-overflow-scrolling : touch;属性让ios默认不显示滚动条 -webkit-overflow-scrolling属性是定义是否使用回弹效果;默认值是auto;当-webkit-overflow-scrolling设置为 padding: 10px; margin: 20px; box-sizing: border-box; font-size: 12px; resize: none; -webkit-overflow-scrolling
TXTAI代码解释bashCopycode[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling bashCopycode[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling bashCopycode[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling PEM(万能解法)`bashCopycode[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling
display: none; width: 0; height: 0; color: transparent; background: transparent;}/* 兼容性处理 */page { -webkit-overflow-scrolling scroll-view>平台适配方案方法四:多平台兼容处理考虑到不同平台的差异,建议添加兼容代码:/* 平台特定适配 */page, .scroll-container { /* iOS 平滑滚动 */ -webkit-overflow-scrolling display: none; width: 0; height: 0; color: transparent; background: transparent;}/* 页面基础样式 */page { -webkit-overflow-scrolling scroll-container { transform: translateZ(0); -webkit-transform: translateZ(0);}/* 优化滚动性能 */scroll-view { -webkit-overflow-scrolling
带来的BUG http://www.tuicool.com/articles/U73Erq iOS8 Safari -webkit-overflow-scrolling: touch; issue http : touch导致Native滚动时出现黑色背景 http://www.jianshu.com/p/171b8b7761cb -webkit-overflow-scrolling: touch; breaks noredirect=1&lq=1 `-webkit-overflow-scrolling: touch` broken for initiallyoffscreen elements in iOS7 rq=1 iOS8 Safari -webkit-overflow-scrolling: touch; issue http://stackoverflow.com/questions/26738764 /ios8-safari-webkit-overflow-scrolling-touch-issue How we fixed the -webkit-overflow-scrolling: touch
排查过程 观察组件容器 CSS,定位是否使用 position: fixed 且 height: 100vh 检查祖先元素是否应用 transform 影响固定定位在 iOS 的表现 查看是否启用 -webkit-overflow-scrolling flex: 0 0 auto; padding: 12px 16px; } .modal-content { flex: 1 1 auto; overflow: auto; -webkit-overflow-scrolling ,避免受祖先 transform 影响 通过门户挂载或独立容器确保层级关系与定位稳定 滚动锁定 弹层打开时对 body 应用 overflow: hidden 或使用稳定的滚动锁定库 弹层内部开启 -webkit-overflow-scrolling
*{ -webkit-overflow-scrolling: touch; } 注意:加了这个属性以后,如果页面中有设置了绝对定位的节点,那么该节点的显示会错乱。 -webkit-overflow-scrolling是什么?MDN上是这样定义的: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果。
对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。 【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch;} But,这个属性是有bug的,比如如果你的页面中有设置了绝对定位的节点 拓展知识: -webkit-overflow-scrolling:touch是什么? MDN上是这样定义的: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
template>
对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。 【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch; } But,这个属性是有bug的,比如如果你的页面中有设置了绝对定位的节点 拓展知识: -webkit-overflow-scrolling:touch是什么? MDN上是这样定义的: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。 【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch; } But,这个属性是有bug的,比如如果你的页面中有设置了绝对定位的节点 拓展知识: -webkit-overflow-scrolling:touch是什么? MDN上是这样定义的: -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
flex-start; touch-action: pan-x pan-y; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling width: 100%; height: 400px; /* 可自定义高度 */ overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling
100% 继承父容器 .index 高度,200px 为顶部标题、日期等固定元素的高度),适配不同屏幕尺寸 滚动条优化:添加 overflow-y: auto 实现内容超出时自动显示滚动条,同时通过 -webkit-overflow-scrolling 优化移动端滚动流畅度 .news-list { height: calc(100% - 200px); /* 动态高度 */ overflow-y: auto; /* 内容溢出时显示滚动条 */ -webkit-overflow-scrolling 滚动不流畅:尝试添加 -webkit-overflow-scrolling: touch 优化移动端滚动体验。
使用 { passive: true } 优化滚动事件监听,避免触摸滑动时的页面阻塞防抖处理滚动事件,减少快速滑动时的计算频率滚动过程中简化渲染内容(如隐藏图片、复杂组件),静止后再显示完整内容启用 -webkit-overflow-scrolling itemCount={items.length} itemSize={60} overscanCount={3} // 减少缓冲区(移动端屏幕小) style={{ '-webkit-overflow-scrolling
当使用-webkit-overflow-scrolling: touch;时,同时使用::-webkit-scrollbar伪类的display:none隐藏滚动条在iOS 11+出现失效的情况,需要使用如下方案解决 下你希望滚动的部分也无法滚动了,因此对于希望滚动的部分,通过e.stopPropagation保留原有滚动效果,并针对回弹动画的交互,建议使用如下代码声明一个可滚动区域: /* 以下属性添加到滚动容器上 */ -webkit-overflow-scrolling
webkit-scrollbar-track { 15 background-color: transparent; 16 } 17 18 /* 全局 */ 19 /** 20 * -webkit-overflow-scrolling : touch; //有回弹效果 21 * -webkit-overflow-scrolling: auto; //滑到哪停到哪 22 **/ 23 *{padding: 0;margin : 0;font-style: normal;outline: none;box-sizing: border-box;-webkit-overflow-scrolling: touch;-webkit-tap-highlight-color