webkit之滚动条美化

摘要:
因为该公司的产品使用webkit内核,所以在编写公共css时,我们不想使用插件模拟。顺便说一下,我们在线查看了css3的滚动条美化。)1819:角点存在(角点存在伪类指示滚动条的角点是否存在。)2021:窗口活动(适用于所有滚动条。它指包含滚动条的区域。当焦点不在窗口中时。

    由于公司的产品改用webkit内核,在写公共css的时候,不想使用插件模拟,顺便网上查阅了下css3的滚动条美化。

    首先,先上一副示意图。

   webkit之滚动条美化第1张

   从网络上盗图的(来源 http://zhangyaochun.iteye.com/blog/1743283)。

  以下是对应的伪类:

::-webkit-scrollbar{/*1*/} /*滚动条整体部分,一般可以设置宽度*/

::-webkit-scrollbar-button{/*2*/}/*两端的按钮*/
 ::-webkit-scrollbar-track{/*3*/}/*外层轨道(track本身就是轨道的意思)*/
 ::-webkit-scrollbar-track-piece{/*4*/}/*内层滚动槽*/
::-webkit-scrollbar-thumb{/*5*/}/*滑块*/
 ::-webkit-scrollbar-corner{/*6*/}/*滚动条整体部分*/
::-webkit-resizer{/*7*/}/*右下角拖动块的样式*/

同时,上面的伪类还可以跟以下的伪类配合使用:

 1 :horizontal(horizontal伪类适用于任何水平方向上的滚动条)
 2 
 3 :vertical(vertical伪类适用于任何垂直方向的滚动条)
 4 
 5 :decrement(decrement伪类适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可以使区域向上或者向右移动的区域和按钮)
 6 
 7 :increment(increment伪类适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可以使区域向下或者向左移动的区域和按钮)
 8 
 9 :start(start伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面)
10 
11 :end(end伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面)
12 
13 :double-button(double-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。)
14 
15 :single-button(single-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。)
16 
17 :no-button(no-button伪类表示轨道结束的位置没有按钮。)
18 
19 :corner-present(corner-present伪类表示滚动条的角落是否存在。)
20 
21 :window-inactive(适用于所有滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。)
22 
23 ::-webkit-scrollbar-track-piece:start {
24    /*滚动条上半边或左半边*/
25 }
26 
27 ::-webkit-scrollbar-thumb:window-inactive {
28    /*当焦点不在当前区域滑块的状态*/
29 
30 }
31 
32 ::-webkit-scrollbar-button:horizontal:decrement:hover {
33    /*当鼠标在水平滚动条下面的按钮上的状态*/
34 
35 }

  用法就是连起来使用,不过以上的内容均来自copy,既然是伪类,就可以在前面加上不同的class来修饰,以下是我写的一个示例的:

 1 .qs-scrollbar::-webkit-scrollbar-track {
 2     -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
 3     -webkit-border-radius: 10px;
 4     border-radius: 10px;
 5 }
 6 .qs-scrollbar::-webkit-scrollbar-button:decrement {
 7     -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
 8     height: 10px;
 9     background:url("../img/sprite.png")  -11px 0px no-repeat;
10     background-color: transparent;
11     /*background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line   x1='60' x2='60' y1='7' y2='27' stroke='%236c6c6c' stroke-  stroke-linecap='round'/></defs><g><use xlink:href='http://t.zoukankan.com/%23l' opacity='.27'/><use xlink:href='http://t.zoukankan.com/%23l' opacity='.27' transform='rotate(30 60,60)'/></g></svg>");*/
12 }
13 .qs-scrollbar::-webkit-scrollbar-button:increment {
14     -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
15     height: 10px;
16     background:url("../img/sprite.png")  0px -0px no-repeat;
17     background-color: transparent;
18     /*background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line   x1='60' x2='60' y1='7' y2='27' stroke='%236c6c6c' stroke-  stroke-linecap='round'/></defs><g><use xlink:href='http://t.zoukankan.com/%23l' opacity='.27'/><use xlink:href='http://t.zoukankan.com/%23l' opacity='.27' transform='rotate(30 60,60)'/></g></svg>");*/
19 }
20 
21 /* Handle */
22 .qs-scrollbar::-webkit-scrollbar-thumb {
23     -webkit-border-radius: 10px;
24     border-radius: 10px;
25     background:rgba(153,153,153,0.7);
26     -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
27 }
28 .qs-scrollbar::-webkit-scrollbar-thumb:window-inactive {
29     background: rgba(153,153,153,0.4);
30 }
::-webkit-scrollbar-button后面跟上:increment或者decrement表示上/下箭头,其他的伪类以此类推,大概使用方式就是这样,还有那个背景图可以使用svg的
效果图如大致如下(除滚动条部分请无视)

webkit之滚动条美化第2张

免责声明:文章转载自《webkit之滚动条美化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringBoot整合Shiro 二:Shiro配置类Hausdorff Distance(豪斯多夫距离)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android webkit 事件传递流程详解

前言:基于android webview 上定制自己使用的可移植浏览器apk,遇到好多按键处理的问题。所以索性研究了一下keyevent 事件的传递流程。 frameworks 层 keyevent 事件开始是从/frameworks/base/core/java/android/webkit目录下WebViewClassic.java 中的onKeyDo...

CSS3自定义滚动条样式

自定义滚动条实现 此部分针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分 2. ::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或向左向右移动) 3. ::-webkit-scrollbar-track 滚动条的轨...

浏览器滚动条美化样式插件.

Jquery.Nicescroll.js nicescroll是一个jQuery插件支持水平滚动条!它支持div,iframe,文本,文档页面滚动条。所有的桌面浏览器兼容:Firefox 4 + 5 +,Chrome,Safari 4 +,Opera 10 +,IE+6与移动设备兼容:iPhone / iPod / ipad,Android 2.2 +,...

CSS3动画(性能篇)

写在前面 高性能移动Web相较PC的场景需要考虑的因素也相对更多更复杂,我们总结为以下几点: 流量、功耗与流畅度。 在PC时代我们更多的是考虑体验上的流畅度,而在Mobile端本身丰富的场景下,需要额外关注对用户基站网络流量使用的情况,设备耗电量的情况。 关于流畅度,主要体现在前端动画中,在现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画。 J...

VUE禁止单个页面的滚动条

单个页面无法直接通过CSS设置body的样式,所以要禁止页面滚动只能通过js来实现,代码如下 RemoveScroll () {   document.body.style.overflow = "hidden"; } 允许页面滚动 AddScroll () {   document.body.style.overflow = "visible"; }...

&amp;lt;input /&amp;gt;

H5新增input的属性 <input type="number" min="2" max="10" step="2"/> 上下加减 <input type="range" min="2" max="10" step="2"/> 进度条 <input type="search"/> text可以点删除 <inpu...