標簽:jQuery滾動(dòng)條插件,滾動(dòng)條樣式,自定義滾動(dòng)條 發(fā)布時(shí)間: 15 條評論 閱讀次數:9,750 次
前段時(shí)間,到網(wǎng)上找素材時(shí),看到了一個(gè)很個(gè)性的滾動(dòng)條式,打開(kāi)Chrome的調試工具看了一下,發(fā)現不是用JavaScript來(lái)模擬實(shí)現的,覺(jué)得有必要折騰一下。于是在各大瀏覽器中對比了一下,發(fā)現只用Chrome適用,也就是說(shuō)這個(gè)用的是Chrome的私有CSS屬性。便百之谷之后,發(fā)現原來(lái)不僅僅只用Chrome,其它的瀏覽器在不同程度上支持自定義滾動(dòng)條樣式的。下面是我不斷測試的結果,若有錯誤或不全,請在評論里面給出,我會(huì )立馬更正;若有更好的方案,你可以留言,讓大家都開(kāi)開(kāi)眼界。。。。。。
追溯瀏覽器對滾動(dòng)條的自定義,恐怕最早的就是IE瀏覽器了(好像最開(kāi)始支持的版本是IE5.5)。下面列出了多個(gè)版本的支持性況:
| 滾動(dòng)條樣式 | 支持情況 | 支持瀏覽器版本 | 可否繼承 | 描述 |
|---|---|---|---|---|
| scrollbar-3dlight-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)框的和滾動(dòng)條箭頭左上邊緣的顏色 |
| scrollbar-highlight-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)框的和滾動(dòng)條箭頭左上邊緣的顏色 |
| scrollbar-face-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)框和滾動(dòng)條箭頭的顏色 |
| scrollbar-arrow-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)條箭頭的顏色 |
| scrollbar-shadow-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)框的和滾動(dòng)條箭頭右下邊緣的顏色 |
| scrollbar-dark-shadow-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)條槽的顏色 |
| scrollbar-base-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)條主要構成部分的顏色 |
| scrollbar-track-color | IE特有屬性 | IE5.5+ | y | 設置滾動(dòng)條軌跡組成部分的顏色 |
為了有助于理解IE中滾動(dòng)條樣式的控制,你可以查看如下的圖片:
經(jīng)過(guò)不斷的測試發(fā)現,在Win8 下面,有一部分樣式都起著(zhù)相同的作用。估計是因為在Win8中扁平化的界面設計而重新定議了系統中滾動(dòng)條!以下是Win 8下面的滾動(dòng)條樣式,并寫(xiě)出了和CSS支持的情況:
以上所寫(xiě)的幾個(gè)四個(gè)CSS屬性,足以控制Win 8系統下,IE瀏覽器的滾動(dòng)條樣式了。但經(jīng)過(guò)測試,發(fā)現,其它的四個(gè)屬性仍然支持(主要是在以上幾個(gè)屬性空缺時(shí),就會(huì )體現其作用)。具體如下:
感覺(jué)IE瀏覽器滾動(dòng)條自定制功能并不是很強,只能控制一樣顯示各個(gè)部分的顏色而已,像寬度,結構等都無(wú)法控制,要靠出個(gè)性點(diǎn)的滾動(dòng)條,很難!很難?。?!
在網(wǎng)上找了很多關(guān)于Firfox自定義瀏覽器滾動(dòng)條的方法,發(fā)現firefox中卻實(shí)是不支持的。發(fā)現了幾篇說(shuō)可以更改,自已也跟著(zhù)代碼寫(xiě)了幾次(不知是我錯了還是。。。),發(fā)現卻是不起作用。以下是一點(diǎn)小的收獲:
- @-moz-document url-prefix(http://),url-prefix(https://) {
- /* 滾動(dòng)條顏色 */
- scrollbar {
- -moz-appearance: none !important;
- background: rgb(0,255,0) !important;
- }
- /* 滾動(dòng)條按鈕顏色 */
- thumb,scrollbarbutton {
- -moz-appearance: none !important;
- background-color: rgb(0,0,255) !important;
- }
- /* 鼠標懸停時(shí)按鈕顏色 */
- thumb:hover,scrollbarbutton:hover {
- -moz-appearance: none !important;
- background-color: rgb(255,0,0) !important;
- }
- /* 隱藏上下箭頭 */
- scrollbarbutton {
- display: none !important;
- }
- /* 縱向滾動(dòng)條寬度 */
- scrollbar[orient="vertical"] {
- min-width: 15px !important;
- }
- }
實(shí)測以上代碼并不起作用。但也可能是我的瀏覽器的版本不對吧!你可以試試,要是有效的話(huà),你可以把你的FF版本發(fā)表在文章評論里面。
下面給兩個(gè)關(guān)于FF滾動(dòng)條的討論(你多少web開(kāi)發(fā)者希望FF能夠像webkit內核瀏覽器一樣程度的來(lái)支持滾動(dòng)條自定義):
在所有瀏覽器,滾動(dòng)條可定制性最強的當屬webkit內核的瀏覽器了。因為源代碼開(kāi)放的原因,市面上基于webkit內核的瀏覽器也是很難窮舉完。例如有:Google Chrome、Opera(opera最近宣布使用webkit內核了)、360極速瀏覽器,獵豹瀏覽器等,搜狗瀏覽器······
下面我們來(lái)看一下webkit瀏覽器是如何強大的吧!
- CSS
- ::-webkit-scrollbar { /* 1 */ }
- ::-webkit-scrollbar-button { /* 2 */ }
- ::-webkit-scrollbar-track { /* 3 */ }
- ::-webkit-scrollbar-track-piece { /* 4 */ }
- ::-webkit-scrollbar-thumb { /* 5 */ }
- ::-webkit-scrollbar-corner { /* 6 */ }
- ::-webkit-resizer { /* 7 */ }
以上CSS代碼所管轄的區域對就關(guān)系:以上注釋中的數字與下圖中數字相對應。
上圖正如如下所言:
注意:對以上各個(gè)部分定義width,height時(shí)。有如下功能:若是水平滾動(dòng)條,則width屬性不起作用,height屬性用來(lái)控制滾動(dòng)條相應部分豎直方向高度;若是豎直滾動(dòng)條,則height屬性不起作用,width屬性用來(lái)控制相應部分的寬度。
能過(guò)上面的不斷的測試。在Chrome中,滾動(dòng)條中的各個(gè)部分和DOM中塊級元素是一樣的。通過(guò)::-webkit-scrollbar等就類(lèi)似于原來(lái)所說(shuō)的CSS中的選擇器。而{}中的屬性,你就像控制一般塊級元素一樣簡(jiǎn)單(強大?。?。
請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還包含一些PHP語(yǔ)言等的實(shí)用例子。
請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還包含一些PHP語(yǔ)言等的實(shí)用例子。
請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還包含一些PHP語(yǔ)言等的實(shí)用例子。
請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還包含一些PHP語(yǔ)言等的實(shí)用例子。
對應的源代碼如下:
CSS部分代碼:
- #scroll-1 {
- width:200px;
- height:200px;
- overflow:auto;
- }
- #scroll-1 div {
- width:400px;
- height:400px;
- } #scroll-1::-webkit-scrollbar {
- width:10px;
- height:10px;
- }
- #scroll-1::-webkit-scrollbar-button {
- background-color:#FF7677;
- }
- #scroll-1::-webkit-scrollbar-track {
- background:#FF66D5;
- }
- #scroll-1::-webkit-scrollbar-track-piece {
- background:url(http://www.lyblog.net/wp/wp-content/themes/mine/img/stripes_tiny_08.png);
- }
- #scroll-1::-webkit-scrollbar-thumb{
- background:#FFA711;
- border-radius:4px;
- }
- #scroll-1::-webkit-scrollbar-corner {
- background:#82AFFF;
- }
- #scroll-1::-webkit-scrollbar-resizer {
- background:#FF0BEE;
- }
HTML結構:
- <div id='scroll-1'>
- <div >
- <p>請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。
- 小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于
- HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還
- 包含一些PHP語(yǔ)言等的實(shí)用例子。</p>
- <p>請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。
- 小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于
- HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還
- 包含一些PHP語(yǔ)言等的實(shí)用例子。</p>
- <p>請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。
- 小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于
- HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還
- 包含一些PHP語(yǔ)言等的實(shí)用例子。</p>
- <p>請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。
- 小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于
- HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還
- 包含一些PHP語(yǔ)言等的實(shí)用例子。</p>
- <p>請選擇Webkit內核的瀏覽器才可以正常的看到滾動(dòng)條的變化。
- 小天地,大世界是一個(gè)Web前端的技術(shù)博客。 主要是關(guān)于
- HTML 5,CSS 3,JavaScript,JQuery等。除此之外,還
- 包含一些PHP語(yǔ)言等的實(shí)用例子。</p>
- </div>
- </div>
通過(guò)以上,我們幾乎就可以來(lái)重寫(xiě)網(wǎng)站的滾動(dòng)條了,但是webkit提供的還有更多的偽類(lèi),可以定制更豐富滾動(dòng)條樣式。本文以下內容參考:https://www.webkit.org/blog/363/styling-scrollbars/
另外,:enabled、:disabled、:hover、和:active等偽類(lèi)同樣在滾動(dòng)條中適用。
看了這些偽類(lèi),怎么也沒(méi)有明白是什么意思,還是自已得寫(xiě)的試試。實(shí)踐出真知嘛!你可以擊接以下鏈接到官方演示DEMO(感覺(jué)可以學(xué)到很多東西的):http://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html
下面我自已嘗試著(zhù)去寫(xiě)的DEMO,不要嫌它太丑就好。
為了一致的用戶(hù)體驗,有時(shí)我們就不得不放棄使用部分瀏覽器提供的CSS接口來(lái)定制滾動(dòng)條,轉而尋求更佳的代替方案。
其中的一中方案是使用jQuery插件,jquery-custom-content-scroller。使用插件的好處是顯而易見(jiàn)的,但是壞處也多得去了。要是您想了解jQuery-custom-content-scroller的具體使用方法,請移步到:http://manos.malihu.gr/jquery-custom-content-scroller/
下面我就jQuery滾動(dòng)條插件的使用作一下簡(jiǎn)單介紹:
第一步:在內容的頂部引入滾動(dòng)條相應的樣式表文件和jquery的庫文件,jquery插件jquery.mcustomscrollbar文件。代碼如下:
- <link rel="stylesheet" type="text/css" href="jquery.mCustomScrollbar.css" >
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
- <script src="jquery.mCustomScrollbar.concat.min.js"></script>
第二步:在要顯示滾動(dòng)條的元素(元素內容中必須要有溢出的塊,否則就不會(huì )出現滾動(dòng)條)上面,加入class="content",然后再加入以下代碼:
- <script>
- (function($){
- $(window).load(function(){
- $(".content").mCustomScrollbar();
- });
- })(jQuery);
- </script>
關(guān)于此插件的詳細介紹,你可以訪(fǎng)問(wèn)官網(wǎng),里面講的相當詳細,我就不再此多贅述。
原創(chuàng )文章,轉載請注明出處:小天地,大世界[http://www.lyblog.net/]
文章地址:http://www.lyblog.net/2013/314.html
上一篇: 游戲開(kāi)發(fā)中的定時(shí)器、速度和幀速率相關(guān)問(wèn)題探討
下一篇: CSS 3 Media Queries 學(xué)習小結
聯(lián)系客服