热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

发现一个改变滚动条的大小颜色等样式的方法

HOMESUBSCRIBE[CSS]用CSS改變scrollbar04JANUARY2013onCSS,webscrollbar在網頁裡面算是相當常見的元素,因為資訊爆炸,

HOMESUBSCRIBE

[CSS] 用CSS改變scrollbar

04 JANUARY 2013 on CSS, web

scrollbar在網頁裡面算是相當常見的元素,因為資訊爆炸,每個網頁都有許多豐富的內容,為了減少分頁,往往會進而拉長整個網頁的長度,這時候就會產生scrollbar,但原生的 scrollbar 有時候跟網頁的整體UI設計並不符合,看起來就很突兀,為了讓網站整體的UI設計一致,我們可以嘗試改變一下 scrollbar 的樣式

準備一個簡單的 scrollbar 頁面

首先在開始改變 scrollbar 之前,我們必須先知道哪些情境之下會出現scrollbar

1.當網頁內容長度超過瀏覽器視窗的可視範圍時,會在右側出現scrollbar

2.當 textarea 包含足夠的文字時

3.利用 iframe 顯示不同頁面時

4.

或其他 block element 有設置 overflow 屬性時

現在我們選擇用第四種設置

的屬性 overflow 來當作 demo 練習

html

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

dit. In ultrices vehicula pretium.

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文這是一段假文

css

.container {
      width: 400px;
      height: 300px;
      background-color: #DCDCDC;
      overflow: scroll; /* showing scrollbars */
}

CSS部份我們替

設置了 width 和 height,目的是為了讓內容限制一個範圍,那當超出範圍的部份,我們就設置了另一個屬性 overflow:scroll,告訴瀏覽器做 scrollbar 的處理,所以設置完的顯示結果如下

Webkit瀏覽器的scrollbar

假設是 Webkit 的瀏覽器(例如: Google Chrome、Apple Safari),我們可以使用 ::-webkit-scrollbar 這個 pseudo-elements 來做改變

::-webkit-scrollbar {
      width: 50px;
}
::-webkit-scrollbar-track {
      background-color: red;
}
::-webkit-scrollbar-thumb {
      background-color: blue
}
::-webkit-scrollbar-button {
      background-color: yellow
}
::-webkit-scrollbar-corner {
      background-color: black;
}

顯示效果如下

很醜,但為了讓大家知道每個屬性的效果,所以特地用顏色做區別,還把寬度設為50px,但現實的專案中千萬別這樣做,還是要像前面所說的,要符合整體的網站UI設計才行

不過以上的寫法只適用於 Webkit browsers

IE呢?

其實沒查可能還不知道,IE是第一個支援用CSS來改變 scrollbar 樣式的瀏覽器,早在IE5.5就可以實做,不過僅限於顏色的改變

用我們剛剛的範例當例子,我們可以這樣寫

body {
    scrollbar-face-color: #b46868;
}

結果如下

jScrollPane

剛剛只談到 Webkit 的瀏覽器還有IE的寫法,那Firefox怎麼辦呢?有沒有比較方便的方法可以適用於大多數的瀏覽器,其實是有的,可以嘗試 jScrollPane 這個jQuery plugin

基本的使用方式如下,在網頁裡面載入jQuery和jquery.jscrollpane.min.js還有jquery.jscrollpane.css




接著是js部份

$('.container').jScrollPane();

效果如下

如果要修改樣式的話,可以直接修改jquery.jscrollpane.css這支檔案裡面的幾個類別屬性

.jspTrack
{
    background: #dde; //可以更改顏色
    position: relative;
}

.jspDrag
{
    background: #bbd; //可以更改顏色
    position: relative;
    top: 0;
    left: 0;
    cursor: pointer;
}

或許會有疑問,為什麼用 jScrollPane 可以支援不同的瀏覽器?其實只要打開 firebug 看看HTML的部份就可以知道

原來 jScrollPane 是用

做出假的 scrollbar,至於位移的效果就是改變CSS屬性top的值

結論

修改 scrollbar 在許多Web Apps都可以看的到實做,像微軟的 Outlook 信箱服務

又或是Google的雲端硬碟服務

都有畫龍點睛的效果,善用這方面的方法,可以讓網站的UI看起來更一致,也不必局限於原生HTML元素的呈現,網頁也可以更加活潑

參考資料:

Quick Tip: Styling Scrollbars to Match Your UI Design

內容如有錯誤,歡迎指正


推荐阅读
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • html结构 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • DOM事件大全
    1.事件:js与html的交互就是通过事件的,观察者模式2.事件流:从页面中接收事件的顺序IE::事件冒泡流,事件冒泡,事件从最具体的元素接收,然后逐级向上传播,主流浏览器都支持N ... [详细]
author-avatar
ShiZha0_625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有