overscroll-behavior特殊场景的应用

overscroll-behavior特殊场景的应用

前言

简单介绍一下overscroll-behavior的一些应用场景。例如Mac 左右滚动误触返回,部分区域滚动到底部触发连锁反应等等。

overscroll-behavior

overscroll-behavior CSS 属性是 overscroll-behavior-x 和 overscroll-behavior-y 属性的合并写法,让你可以控制浏览器过度滚动时的表现——也就是滚动到边界。

默认情况下,当触及页面顶部或者底部时(或者是其他可滚动区域),移动端浏览器倾向于提供一种“触底”效果,甚至进行页面刷新。你可能也发现了,当对话框中含有可滚动内容时,一旦滚动至对话框的边界,对话框下方的页面内容也开始滚动了——这被称为“滚动链”。

在某些情况下我们不想要这些表现,使用 overscroll-behavior 来去除不需要的滚动链,以及类似 QQ 一类的应用下拉刷新效果。

1/* 关键字的值 */ 2overscroll-behavior: auto; /* 默认 */ 3overscroll-behavior: contain; 4overscroll-behavior: none; 5 6/* 使用 2 个值 */ 7overscroll-behavior: auto contain;

解释:

auto 默认的滚动溢出行为表现的和正常一样。

contain 默认的滚动溢出行为将被内部的元素观察到,(例如:“bounce”效果或者刷新),但是相邻的区域不会产生连续滚动效果,例如:在下面的元素不会被滚动。

none 相邻的滚动区域不会有连续滚动效果,并且默认的滚动溢出行为会被阻止。

应用一:解决 Mac 左右滚动误触返回事件

1//阻止 2 document.body.style.overscrollBehaviorX = 'none' 3//恢复 4document.body.style.overscrollBehaviorX = 'auto'

建议在body上使用,如上,有效果,假如在弹窗div里面使用,可能无效,我们就要考虑其他方式解决。 如下方式:

1const element = document.getElementsByClassName('haorooms_contain')[0]; 2 element.addEventListener('mousewheel', function(event) { 3 // 滚动到右边的最大宽度 4 var maxX = this.scrollWidth - this.offsetWidth; 5 6 // 如果这个事件看起来要滚动到元素的边界之外,要阻止它 7 // 其中一个是滚动到最左边,一个是滚动到最右边 8 if (this.scrollLeft + event.deltaX < 0 || 9 this.scrollLeft + event.deltaX > maxX) { 10 // 阻止事件 11 event.preventDefault(); 12 } 13}, false);

应用二:禁止滚动链

可以直接在需要禁止的div上面添加样式就可以了

1.haorooms_container { 2 overscroll-behavior-x: none; 3}
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

AWS国庆双重礼,仅限7天

自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。$200美元A

AWS国庆双重礼,仅限7天

自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。$200美元A

国庆假期玩不停,双重好礼放肆领

自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天AW

国庆假期玩不停双重好礼放肆领

自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天AW