使用 CSS overscroll-behavior 控制滚动行为:自定义下拉刷新和溢出效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用 CSS overscroll-behavior 控制滚动行为:自定义下拉刷新和溢出效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1466字,纯文字阅读大概需要3分钟。
内容图文
CSS 的新属性 overscroll-behavior 允许开发者覆盖默认的浏览器滚动行为,一般用在滚动到顶部或者底部。
背景
滚动边界和滚动链接(boundary & chaining)
在 APP 中经常使用的抽屉导航(drawer)中,我们期望的效果是:滚动到底部时,滚动停止,因为我们到达了"滚动边界"。
但是在 Web 页面中滚动并不会停止,而是继续滚动抽屉后面的内容。效果如下:
我们称这种行为叫滚动链接(scroll chaining)。
下拉刷新 pull-to-refresh
下拉刷新是一个在移动端经常使用的操作,Chrome 移动版也增加了下拉刷新的支持。
Twitter PWA 版本的自定义下拉
Chrome Android 版的原生下拉刷新
很多时候我们需要禁用原生的 pull-to-refresh 行为。
以前我们想出各种方式来处理滚动,比如:不让页面滚动,而是使用 touch 事件处理滚动行为,使用 100vw/vh
设置页面高度禁止内容溢出或滚动,等等。。。
现在我们可以使用 overscroll-behavior
。
介绍 overscroll-behavior
overscroll-behavior
属性有 3 个值:
-
auto
- 默认。元素的滚动会传播给祖先元素。 -
contain
- 阻止滚动链接。滚动不会传播给祖先,但会显示元素内的原生效果。例如,Android 上的炫光效果或 iOS 上的回弹效果,当用户触摸滚动边界时会通知用户。注意:overscroll-behavior: contain
在html
元素上使用可防止滚动导航操作。 -
none
- 和contain
一样,但它也可以防止节点本身的滚动效果(例如 Android 炫光或 iOS 回弹)。
阻止 fixed 定位元素的滚动传播
当一个 fixed
定位元素滚动到边界时,会滚动元素后面的内容。如下:
我们可以使用 overscroll-behavior: contain
阻止这种行为。
如果我们有一个 fixed
定位的弹出层需要滚动时,默认是这样的,如下:
使用 overscroll-behavior: contain
可以阻止滚动传播给父元素,如下:
禁用下拉刷新 pull-to-refresh
禁用原生的下拉刷新效果,只需要在 body
或 html
元素添加:
body {
/* Disables pull-to-refresh but allows overscroll glow effects. */
overscroll-behavior-y: contain;
}
当我们阻止了原生的下拉刷新后,就可以实现自己定义的下拉刷新。否则会出现两个下拉刷新:
之前:
之后:
禁用炫光和回弹效果
将属性制定为 none
,可以禁用默认的滚动边界效果。
body {
/* 禁用默认的下拉刷新和边界效果
但是依然可以进行滑动导航 */
overscroll-behavior-y: none;
}
原文地址:https://segmentfault.com/a/1190000012014962
如果想禁用左右滑动的手势导航,可以使用 overscroll-behavior-x: none
。
原文:http://www.cnblogs.com/kiter/p/7845794.html
内容总结
以上是互联网集市为您收集整理的使用 CSS overscroll-behavior 控制滚动行为:自定义下拉刷新和溢出效果全部内容,希望文章能够帮你解决使用 CSS overscroll-behavior 控制滚动行为:自定义下拉刷新和溢出效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。