成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows 滾動(dòng)條如何美化成 macOS 那樣?

系統(tǒng) Windows
macOS?的滾動(dòng)類(lèi)似于懸浮在內(nèi)容之上,不占據(jù)任何頁(yè)面空間,那么,Windows可以做到嗎?

眾所周知,Windows和macOS?的滾動(dòng)條在默認(rèn)情況是不一致的,最顯著的區(qū)別就是 macOS滾動(dòng)條是不占據(jù)屏幕尺寸的,如下:

圖片

macOS滾動(dòng)條

而Windows下是這樣的:

圖片

windows滾動(dòng)條

很多設(shè)計(jì)師會(huì)吐槽Windows?滾動(dòng)條不太美觀,能不能自定義成macOS那樣呢?

當(dāng)然也是可以的!一起看看吧!

一、自定義滾動(dòng)條外觀

考慮到桌面端現(xiàn)在已經(jīng)是-webkit-?的天下了,以下自定義均以chrome為例:

自定義滾動(dòng)條需要用到兩個(gè)關(guān)鍵的偽元素::-webkit-scrollbar和::-webkit-scrollbar-thumb。

  • ::-webkit-scrollbar滾動(dòng)容器樣式
  • ::-webkit-scrollbar-thumb滑塊樣式

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

下面是windows下的滾動(dòng)條:

圖片

滾動(dòng)條相關(guān)偽元素

有了這兩個(gè)偽元素,自定義樣式就很方便了。現(xiàn)在我們需要將滾動(dòng)條的背景去除,滑塊修改成半透明的圓角矩形。

::-webkit-scrollbar{
background-color: transparent;
}
::-webkit-scrollbar-thumb{
background-color: transparent;
border-radius: 8px;
}

效果如下:

圖片

自定義滾動(dòng)條

是不是和macOS的差異有點(diǎn)大?沒(méi)關(guān)系,下面繼續(xù)優(yōu)化:

二、滑塊與滾動(dòng)容器之間的間距

macOS的滾動(dòng)滑塊并不是緊貼邊緣的,它與滾動(dòng)容器直接還有間隙。

圖片

macOS滾動(dòng)條的間隙

那么,如何留出一點(diǎn)點(diǎn)間隙呢?

嘗試了一些方法,比如給滾動(dòng)容器添加內(nèi)邊距,或者給滑塊添加外邊距。

::-webkit-scrollbar{
padding: 2px;
}
::-webkit-scrollbar-thumb{
margin: 2px;
}

由于滾動(dòng)條的特殊性,這些方式都不起作用。

后來(lái)發(fā)現(xiàn),邊框是生效的,比如給滑塊添加一個(gè)border。

::-webkit-scrollbar-thumb{
border: 2px solid red;
}

效果如下:

圖片

添加border的效果

既然這樣就好辦了,把邊框設(shè)置成透明不就行了嗎,由于是透明,默認(rèn)情況下背景會(huì)覆蓋到邊框,所以還需要設(shè)置背景作用區(qū)域(background-clip)。

::-webkit-scrollbar-thumb{
border: 2px solid transparent;
background-clip: content-box;
}

效果如下:

圖片

透明邊框配合background-clip的效果

三、將滾動(dòng)條懸浮在內(nèi)容之上

還有一個(gè)比較重要的特性沒(méi)有實(shí)現(xiàn),那就是滾動(dòng)條的位置。macOS?的滾動(dòng)類(lèi)似于懸浮在內(nèi)容之上,不占據(jù)任何頁(yè)面空間,那么,Windows可以做到嗎?當(dāng)然也是可以的,而且非常容易,只需要一個(gè)屬性。

body{
overflow: overlay; /*滾動(dòng)條會(huì)覆蓋在頁(yè)面之上*/
}

下面看對(duì)比效果:

圖片

overlay效果對(duì)比

是不是看著非常像MacOS了?

四、滾動(dòng)時(shí)才出現(xiàn)

macOS滾動(dòng)條還有一個(gè)特性,就默認(rèn)情況下是不可見(jiàn)的,只有滾動(dòng)時(shí)才可見(jiàn),一旦停止就又消失了,如下:

圖片

滾動(dòng)才出現(xiàn)

是否正在滾動(dòng)就沒(méi)法用CSS?進(jìn)行判斷了,需要借助點(diǎn)js?的力量,原理很簡(jiǎn)單,滾動(dòng)的時(shí)候給body?添加一個(gè)屬性scroll?屬性,然后延遲500ms后移除,如果繼續(xù)滾動(dòng)就取消計(jì)時(shí)器,代碼如下:

window.addEventListener('scroll', function() {
document.body.toggleAttribute('scroll', true)
this.timer && clearTimeout(this.timer)
this.timer = setTimeout(() => {
document.body.toggleAttribute('scroll')
}, 500)
})

然后配合一點(diǎn)CSS:

::-webkit-scrollbar-thumb{
/*其他樣式*/
background-color: transparent;
}
body[scroll]::-webkit-scrollbar-thumb
background-color: rgba(0,0,0,.5);
}

現(xiàn)在再看看效果:

圖片

windows下的滾動(dòng)效果

是不是非常接近macOS的效果了?

不過(guò)還有個(gè)小遺憾,滾動(dòng)條上不支持過(guò)渡和動(dòng)畫(huà),如下:

::-webkit-scrollbar-thumb{
transition: .3s;/*并不生效*/
}

也就是想達(dá)到macOS?下那種“淡出”的效果,僅憑 CSS是做不到的,當(dāng)然這也并不是大問(wèn)題,可以忽略

下面是完整代碼:

body{
margin: 0;
overflow: overlay;
}
::-webkit-scrollbar{
background-color: transparent;
width: 12px;
}
::-webkit-scrollbar-thumb{
background-color: transparent;
border-radius: 8px;
background-clip: content-box;
border: 2px solid transparent;
}
body[scroll]::-webkit-scrollbar-thumb,
::-webkit-scrollbar-thumb:hover{
background-color: rgba(0,0,0,.5);
}
window.addEventListener('scroll', function(ev) {
document.body.toggleAttribute('scroll', true)
this.timer && clearTimeout(this.timer)
this.timer = setTimeout(() => {
document.body.toggleAttribute('scroll')
}, 500)
})

你也可以訪問(wèn)在線 demo:macOS scrollbar (codepen.io)[2]或者 macOS scrollbar(juejin.cn)[3] 或者macOS scrollbar (gitee.io)[4]。

五、總結(jié)和說(shuō)明

以上就是自定義滾動(dòng)全部小技巧了,你學(xué)會(huì)了嗎?下面總結(jié)一下:

  • Windows和macOS?默認(rèn)滾動(dòng)條不一致,很多設(shè)計(jì)師覺(jué)得Windows不太美觀,有必要自定義。
  • 自定義滾動(dòng)條主要借助兩個(gè)關(guān)鍵的偽元素::-webkit-scrollbar和::-webkit-scrollbar-thumb。
  • 滾動(dòng)滑塊和滾動(dòng)容器之間的間隙可以通過(guò)border和backgrpound-clip實(shí)現(xiàn)。
  • 給滾動(dòng)容器設(shè)置overflow: overlay,可以將滾動(dòng)條懸浮于內(nèi)容之上。
  • 滾動(dòng)時(shí)出現(xiàn)需要借助js定時(shí)器,延遲控制狀態(tài)

另外,有同學(xué)問(wèn)fierfox?怎么辦呢?沒(méi)關(guān)系,不用管它,桌面端早已是Chrome?的天下了,占比超過(guò)70%?,還有一點(diǎn),這是個(gè)視覺(jué)體驗(yàn)的優(yōu)化,即使firefox不支持也不影響滾動(dòng)條功能,有什么理由不去使用呢?

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

2023-11-22 07:47:34

2010-09-14 10:13:53

DIV滾動(dòng)條

2010-09-09 11:25:55

滾動(dòng)條CSS

2024-01-22 09:28:23

CSS前端滾動(dòng)驅(qū)動(dòng)

2011-09-02 10:03:40

jQuery滾動(dòng)圖片

2014-07-29 11:10:26

Ubuntu14.04小技巧

2010-09-30 15:24:31

滾動(dòng)條Javascript

2011-05-12 16:30:44

自定義滾動(dòng)條

2021-08-31 07:31:22

微軟Edge瀏覽器

2010-09-09 09:47:02

DIV滾動(dòng)條

2010-07-28 11:25:08

Flex滾動(dòng)條

2011-03-04 14:46:40

Ubuntu Unit

2022-03-25 22:51:10

微軟Chrome滾動(dòng)條

2010-08-09 15:19:29

Flex滾動(dòng)條

2011-09-01 13:17:46

JQuery滾動(dòng)

2023-09-11 09:07:58

CSS隱藏滾動(dòng)條

2010-09-30 15:37:29

ScrollBarJavascrip

2022-05-30 07:56:13

微軟滾動(dòng)條Chrome

2023-05-04 08:09:44

Windows 11微軟

2017-10-25 11:42:32

macOS操作界面
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久国产精品免费视频 | 国产一区二区免费 | 成年人黄色免费视频 | 99精品国产一区二区三区 | 亚洲第一av | 亚洲综合视频一区 | av中文字幕在线观看 | 欧美精品综合 | 欧美成人精品一区二区男人看 | 精品欧美一区二区三区久久久 | 岛国精品 | 久久一区二区免费视频 | 中文在线a在线 | 日韩在线视频免费观看 | 欧美成人一区二区三区片免费 | 成人免费区一区二区三区 | 国产精品一区二区视频 | 狠狠色综合欧美激情 | 99pao成人国产永久免费视频 | 激情欧美一区二区三区 | 亚洲一区二区三区免费在线观看 | 欧美一级做性受免费大片免费 | 国产欧美精品一区 | 国产精品一区二区久久久久 | 欧美一区免费在线观看 | 岛国毛片 | 午夜免费在线观看 | 91精品国产色综合久久 | 欧美亚洲在线视频 | 国产精品美女久久久久aⅴ国产馆 | www国产成人 | 亚洲欧美日本国产 | 日韩在线播放av | 欧美天堂在线 | 国产一区二区免费 | 亚洲黄色一级毛片 | 亚洲福利av | 日韩一级不卡 | 国产四区| 免费视频久久久久 | 国产高清无av久久 |