日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

自定義滾動條的利弊

 

在編碼之前,我覺得有必要先了解一下在網站或應用中使用自定義滾動條所帶來的影響。

好的方面在于它能讓你的網站在無數使用默認滾動條的網站中脫穎而出,任何能加深網站訪問者印象的東西都能讓你長期受益。

另一方面,許多 UI 設計師認為絕不應該干涉滾動條等“標準化” UI 組件的表現。如果過度修改滾動條,可能會給網站/應用的用戶造成困擾。

如果是自己的個人網站,就不必擔心這些了,只要你自己看著喜歡就行。

如果想要在工作項目或者用來獲利的項目中實現自定義滾動條,則需要進行對照測試,基于結果數據來做決定。

歸根結底,大多數人寫代碼是為了增加業務收入,你需要牢記這一點。

起步

首先要做的是創建一個基本的頁面布局,頁面要足夠大,使瀏覽器出現滾動條:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link rel='stylesheet' href="styles.css">

<title>Document</title>

</head>

<body>

<div class="container">

<h1>CSS Scrollbar Customization</h1>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

<p class="para">

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

</p>

</div>

</body>

</html>

沒什么好看的內容,只有一個用來構建頁面布局的 div 容器、一個標題、一些用來填充頁面的段落。

以下是一些 CSS 樣式,它們能讓頁面好看一點:

body {

font-family: Arial, Helvetica, sans-serif;

margin: 0;

}

.para {

font-size: 16px;

padding: 20px;

width: 70%;

}

.container {

display: flex;

flex-direction: column;

justify-content: center;

align-items: center;

}

頁面效果如下:

如何使用 CSS 創建自定義滾動條

準備工作做好了,接下來進入本教程中有趣的部分。本節內容的第一部分會介紹一些滾動條樣式相關的 CSS 屬性。第二部分我們會實現 4 種不同類型的滾動條,能為你之后制作自己的滾動條提供一些思路。【關注尚硅谷,輕松學IT】

滾動條樣式相關的 CSS 屬性

很不幸,現在還沒有對這些 CSS 屬性的標準化跨瀏覽器支持。Firefox 和一些基于 Webkit 內核的瀏覽器(如 Chrome、Edge、Safari)各自提供了不同的屬性。

本教程主要針對 Webkit 內核的瀏覽器,因為它們提供了更多樣式屬性,不過我也會簡單介紹一下 Firefox。

Webkit 滾動條樣式屬性

::-webkit-scrollbar – 整個滾動條

::-webkit-scrollbar-track – 滾動條的滾動區域(軌道)

::-webkit-scrollbar-thumb – 滾動條的可拖拽部分(滑塊)

以下是可用但不常用的屬性:

::-webkit-scrollbar-button – 滾動條兩端的上/下(或左/右)按鈕

::-webkit-scrollbar-track-piece – 滾動條軌道未被滑塊覆蓋的部分

::-webkit-scrollbar-corner – 垂直滾動條和水平滾動條交匯的部分

Firefox 滾動條樣式屬性

Firefox 中當前可用的兩個滾動條樣式屬性:

scrollbar-width – 控制滾動條的寬度,只有兩個可選項:auto 或 thin

scrollbar-color – 接收兩個顏色,依次指定滑塊和軌道的顏色

了解了自定義滾動條的樣式屬性,我們通過幾個例子將它們付諸實踐。

暗色主題滾動條

現在暗色主題的網站非常流行。堅持使用默認的滾動條可能會惹惱用戶,因為它與整個網站的暗色主題不搭。

用我們新學的知識創建一個暗色主題的滾動條,它的邊框是圓形的(靈感來自 CSS Tricks 網站):

html::-webkit-scrollbar {

width: 20px;

}

html::-webkit-scrollbar-track {

background-color: black;

}

html::-webkit-scrollbar-thumb {

background: #4e4e4e;

border-radius: 25px;

}

最終效果在截圖中比較難看清,不過可以看到軌道是黑色的、滑塊是深灰色的。

極簡滾動條

這個示例中將會制作一個極簡的滾動條。如果你的網站追求簡單優雅的風格,這種滾動條會很適合。

需要注意的重點是,你可以使用 hover 和 active 偽元素來進一步設置滾動條樣式。本例中,當你把鼠標懸停在滑塊上以及拖動滑塊時它的顏色會變成更深的灰色。

html::-webkit-scrollbar {

width: 10px;

}

html::-webkit-scrollbar-track {

background: rgb(179, 177, 177);

border-radius: 10px;

}

html::-webkit-scrollbar-thumb {

background: rgb(136, 136, 136);

border-radius: 10px;

}

html::-webkit-scrollbar-thumb:hover {

background: rgb(100, 100, 100);

border-radius: 10px;

}

html::-webkit-scrollbar-thumb:active {

background: rgb(68, 68, 68);

border-radius: 10px;

}

最終效果:

圖案滾動條

這個部分的重點是使用重復的線性漸變在滾動條軌道中創建圖案效果,這個方法也可以運用在滑塊上。

另外一點需要注意的是,你也可以為滑塊設置邊框樣式,利用邊框樣式可以創建許多有趣的效果。本例中,我把滑塊的背景顏色設為透明,這樣就可以在滾動的同時看到軌道中的圖案。

html::-webkit-scrollbar {

width: 20px;

}

html::-webkit-scrollbar-track {

background-image: repeating-linear-gradient(45deg, red 0, red 1px, transparent 0, transparent 50%);

background-size: 10px 10px;

}

html::-webkit-scrollbar-thumb {

background: transparent;

border-radius: 5px;

border: 2px solid black;

box-shadow: inset 1px 1px 5px black ;

}

最終效果:

“動態”漸變滾動條

這個例子用到了線性漸變,并使用了一個小技巧:利用滑塊的陰影使得滾動條在頁面滾動時看起來像是在變換顏色,實際上是軌道的背景透過滑塊顯示了出來。

陰影遮蓋住了滑塊之外的所有軌道空間,又由于滑塊是透明的,所以軌道背景的漸變顏色透過它顯示出來。

html::-webkit-scrollbar {

width: 20px;

}

html::-webkit-scrollbar-track {

background: linear-gradient(0deg, rgba(255, 0, 0, 1) 0%, rgba(7, 0, 211, 1) 100%);

}

html::-webkit-scrollbar-thumb {

background: transparent;

box-shadow: 0px 0px 0px 100vh black;

}

最終效果:

自定義滾動條的限制及備選方案

顯然,創建自定義滾動條存在一些問題。首先是缺少跨瀏覽器支持。其他可能問題包括:無法為滾動條增加過渡和動畫效果、移動設備不支持自定義滾動條。

一個備選方案是:隱藏默認的滾動條,并使用外部庫來實現,但這可能會影響頁面性能。而且可能還有其他潛在的可用性問題,因為這些庫依賴 JAVAScript 來模擬原生的滾動條行為。

下面我會介紹兩個用于制作滾動條的流行開源庫。

SimpleBar

使用原生滾動行為的自定義滾動條 JavaScript 庫:操作簡單、輕量、易用、跨瀏覽器。- Grsmto/simplebar

顧名思義,SimpleBar 旨在簡化創建自定義滾動條的過程。唯一的缺點是它不能作為網站的主滾動條(譯注:即根元素的滾動條)來使用,也不支持表格元素、文本輸入區域和下拉選擇框。

SimpleBar 主要適用于諸如動態聊天應用或一些在頁面內部元素中有滾動行為的場景。

Overlay Scrollbars

一個隱藏原生滾動條、提供自定義樣式滾動條的插件,保留了原生的功能和體驗。- KingSora/OverlayScrollbars

Overlay Scrollbars 與 SimpleBar 很相似,但是它提供了對 HTML body 元素的支持。這意味著除了跨瀏覽器支持和移動端支持等特性,還可以把它作為網站的主滾動條來使用。

文章來源:前端試煉

分享到:
標簽:CSS
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定