自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

兩分鐘小技巧!如何阻止 MacOS 的觸底彈性滾動(dòng)和雙指手勢(shì)導(dǎo)航

系統(tǒng) MacOS
通常情況下,反彈效果可以反映出是否滾動(dòng)到了邊界,讓滾動(dòng)體驗(yàn)更加絲滑,算是一種體驗(yàn)的提升,但是如果頁(yè)面總有fixed定位元素,同樣也會(huì)受到影響,在視覺上不是那么美觀,那有沒有辦法阻止呢?

眾所周知,macOS 的滾動(dòng)容器中默認(rèn)會(huì)有一個(gè)“觸底反彈”效果,也就是常說(shuō)的“橡皮筋”效果,如下:

圖片

Kapture 2022-10-15 at 12.31.25

通常情況下,反彈效果可以反映出是否滾動(dòng)到了邊界,讓滾動(dòng)體驗(yàn)更加絲滑,算是一種體驗(yàn)的提升,但是如果頁(yè)面總有fixed定位元素,同樣也會(huì)受到影響,在視覺上不是那么美觀,那有沒有辦法阻止呢?

有!一行 CSS 就可以解決。

一、overscroll-behavior

阻止上面的“觸底反彈”只需要一個(gè) CSS 屬性,那就是overscroll-behavior,它的作用有兩個(gè)。

https://developer.mozilla.org/zh-CN/docs/Web/CSS/overscroll-behavior[1]。

改變滾動(dòng)邊界行為(比如“觸底”效果和移動(dòng)端“下拉刷新”行為)。

改變滾動(dòng)鏈行為(讓滾動(dòng)嵌套時(shí)父容器滾動(dòng)不觸發(fā))。

關(guān)于改變滾動(dòng)鏈行為可以參考這篇文章,這里就不重復(fù)了: CSS overscroll-behavior讓滾動(dòng)嵌套時(shí)父滾動(dòng)不觸發(fā) ? 張?chǎng)涡?鑫空間-鑫生活 (zhangxinxu.com)[2]。

語(yǔ)法很簡(jiǎn)單:

overscroll-behavior: auto; /* 默認(rèn) */
overscroll-behavior: contain;
overscroll-behavior: none;

其中,contain表示保留默認(rèn)的邊界行為,阻止父容器滾動(dòng),none表示兩者都阻止。

比如給body加上如下樣式:

body{
overscroll-behavior: none;
}

下面是實(shí)際效果:

圖片

Kapture 2022-10-15 at 12.54.15

可以看到,加上overscroll-behavior: none之后,不再有“觸底反彈”的效果了。

二、雙指導(dǎo)航手勢(shì)

在 macOS中,還有一個(gè)系統(tǒng)級(jí)別的導(dǎo)航手勢(shì),如下:

圖片

默認(rèn)開啟后,瀏覽器總只要用雙指就可以快速前進(jìn)或者后退,如下:

圖片

Kapture 2022-10-15 at 13.36.43

盡管在觸發(fā)時(shí),瀏覽器會(huì)有相關(guān)的提示,但仍然避免不了被“誤觸”。下面是 Chrome 瀏覽器的導(dǎo)航提示,不同瀏覽器略有差異。

圖片

想象一下,如果你辛辛苦苦填的一大堆表單,一下子不小心返回了,是不是心里要罵娘了。除了網(wǎng)站本身需要及時(shí)保存外,在重要的頁(yè)面最好也要阻止這樣的行為,沒錯(cuò),仍然是這個(gè)屬性。

body{
overscroll-behavior: none;
}

圖片

加上這個(gè)屬性后,瀏覽器就不在觸發(fā)手勢(shì)導(dǎo)航了,自然也就避免了“誤觸”的情況。

有些設(shè)計(jì)覺得彈性滾動(dòng)挺好的,去掉以后比較生硬,希望保留,只需要阻止手勢(shì)導(dǎo)航,可以設(shè)置:

body{
overscroll-behavior: contain;
}

效果如下

圖片

Kapture 2022-10-15 at 13.48.14

這樣就既保留了彈性效果,同時(shí)也阻止了手勢(shì)導(dǎo)航,完美!

三、兼容性和總結(jié)

這樣一個(gè)用戶體驗(yàn)小技巧你學(xué)會(huì)了嗎?下面簡(jiǎn)單總結(jié)一下。

  • 彈性滾動(dòng)可以反映出是否滾動(dòng)到了邊界,讓滾動(dòng)體驗(yàn)更加絲滑,算是一種體驗(yàn)的提升。
  • 但是,彈性滾動(dòng)讓一些fixed元素也跟隨滾動(dòng),視覺上不美觀,需要阻止。
  • overscroll-behavior可以改變滾動(dòng)邊界行為,完美阻止彈性滾動(dòng)。
  • 雙指手勢(shì)導(dǎo)航在提供便捷的同時(shí),有時(shí)候也會(huì)“誤觸”。
  • overscroll-behavior可以改變滾動(dòng)鏈行為,完美阻止手勢(shì)導(dǎo)航。

另外,在移動(dòng)端阻止 iOS 彈性滾動(dòng)是一個(gè)老大難的問題,如今有了這個(gè)屬性可以很好的解決這個(gè)問題??上У氖?,Safari 再次拖了后腿,其他瀏覽器早早就支持了,Safari 到今年(2022年)才開始支持,兼容性如下:

圖片

有點(diǎn)想不明白了,這彈性滾動(dòng)效果不就是蘋果自己搞錯(cuò)來(lái)的嗎,自家都不支持?不過好在現(xiàn)在支持了,不出兩年,iOS設(shè)備也可以放心用起來(lái),再也不需要復(fù)雜的 JS 做兼容判斷了。

責(zé)任編輯:武曉燕 來(lái)源: 前端偵探
相關(guān)推薦

2021-11-30 06:56:59

緩存穿透數(shù)據(jù)庫(kù)

2025-03-24 07:10:00

嚴(yán)格模式JavaScript代碼

2021-08-17 14:38:22

微信內(nèi)存功能

2017-07-05 16:38:46

企業(yè)云供應(yīng)商超融合

2022-04-08 15:32:19

代碼抗疫程序

2015-04-17 09:32:27

鏈路負(fù)載深信服

2018-11-26 10:10:35

前端Vue.jsAngular

2023-06-27 15:52:09

2014-02-14 10:46:16

2022-11-16 12:08:16

2018-03-01 18:45:15

區(qū)塊鏈數(shù)據(jù)庫(kù)生存游戲

2025-01-24 08:45:00

AI工具模型

2024-03-27 12:46:53

AI訓(xùn)練

2023-03-12 21:28:36

AI工具

2020-07-22 19:20:44

微信移動(dòng)應(yīng)用

2022-01-21 10:51:39

MySQL索引

2022-04-18 09:07:10

Python代碼核酸統(tǒng)計(jì)

2023-12-25 08:01:01

2021-05-08 13:36:13

云計(jì)算AWS云平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)