自定义滚动条样式

自定义滚动条样式


我们可以通过 CSS 来设定滚动条的样式,此文适用于 webkit 内核的浏览器。

DEMO 样例

源代码:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <title>CSS3自定义滚动条-轩枫阁</title>
  <style>
    header {
      font-family: "Lobster", cursive;
      text-align: center;
      font-size: 25px;
    }

    #info {
      font-size: 18px;
      color: #555;
      text-align: center;
      margin-bottom: 25px;
    }

    a {
      color: #074e8c;
    }

    .scrollbar {
      margin-left: 30px;
      float: left;
      height: 300px;
      width: 65px;
      background: #f5f5f5;
      overflow-y: scroll;
      margin-bottom: 25px;
    }

    .force-overflow {
      min-height: 450px;
    }

    #wrapper {
      text-align: center;
      width: 500px;
      margin: auto;
    }

    /*
     *  STYLE 1
     */

    #style-1::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      border-radius: 10px;
      background-color: #f5f5f5;
    }

    #style-1::-webkit-scrollbar {
      width: 12px;
      background-color: #f5f5f5;
    }

    #style-1::-webkit-scrollbar-thumb {
      border-radius: 10px;
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #555;
    }

    /*
     *  STYLE 2
     */

    #style-2::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      border-radius: 10px;
      background-color: #f5f5f5;
    }

    #style-2::-webkit-scrollbar {
      width: 12px;
      background-color: #f5f5f5;
    }

    #style-2::-webkit-scrollbar-thumb {
      border-radius: 10px;
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #d62929;
    }

    /*
     *  STYLE 3
     */

    #style-3::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
    }

    #style-3::-webkit-scrollbar {
      width: 6px;
      background-color: #f5f5f5;
    }

    #style-3::-webkit-scrollbar-thumb {
      background-color: #000000;
    }

    /*
     *  STYLE 4
     */

    #style-4::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
    }

    #style-4::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-4::-webkit-scrollbar-thumb {
      background-color: #000000;
      border: 2px solid #555555;
    }

    /*
     *  STYLE 5
     */

    #style-5::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
    }

    #style-5::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-5::-webkit-scrollbar-thumb {
      background-color: #0ae;

      background-image: -webkit-gradient(linear,
        0 0,
        0 100%,
        color-stop(0.5, rgba(255, 255, 255, 0.2)),
        color-stop(0.5, transparent),
        to(transparent));
    }

    /*
     *  STYLE 6
     */

    #style-6::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
    }

    #style-6::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-6::-webkit-scrollbar-thumb {
      background-color: #f90;
      background-image: -webkit-linear-gradient(45deg,
        rgba(255, 255, 255, 0.2) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.2) 50%,
        rgba(255, 255, 255, 0.2) 75%,
        transparent 75%,
        transparent);
    }

    /*
     *  STYLE 7
     */

    #style-7::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
      border-radius: 10px;
    }

    #style-7::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-7::-webkit-scrollbar-thumb {
      border-radius: 10px;
      background-image: -webkit-gradient(linear,
        left bottom,
        left top,
        color-stop(0.44, rgb(122, 153, 217)),
        color-stop(0.72, rgb(73, 125, 189)),
        color-stop(0.86, rgb(28, 58, 148)));
    }

    /*
     *  STYLE 8
     */

    #style-8::-webkit-scrollbar-track {
      border: 1px solid black;
      background-color: #f5f5f5;
    }

    #style-8::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-8::-webkit-scrollbar-thumb {
      background-color: #000000;
    }

    /*
     *  STYLE 9
     */

    #style-9::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
    }

    #style-9::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-9::-webkit-scrollbar-thumb {
      background-color: #f90;
      background-image: -webkit-linear-gradient(90deg,
        rgba(255, 255, 255, 0.2) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.2) 50%,
        rgba(255, 255, 255, 0.2) 75%,
        transparent 75%,
        transparent);
    }

    /*
     *  STYLE 10
     */

    #style-10::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
      border-radius: 10px;
    }

    #style-10::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-10::-webkit-scrollbar-thumb {
      background-color: #aaa;
      border-radius: 10px;
      background-image: -webkit-linear-gradient(90deg,
        rgba(0, 0, 0, 0.2) 25%,
        transparent 25%,
        transparent 50%,
        rgba(0, 0, 0, 0.2) 50%,
        rgba(0, 0, 0, 0.2) 75%,
        transparent 75%,
        transparent);
    }

    /*
     *  STYLE 11
     */

    #style-11::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
      background-color: #f5f5f5;
      border-radius: 10px;
    }

    #style-11::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-11::-webkit-scrollbar-thumb {
      background-color: #3366ff;
      border-radius: 10px;
      background-image: -webkit-linear-gradient(0deg,
        rgba(255, 255, 255, 0.5) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.5) 50%,
        rgba(255, 255, 255, 0.5) 75%,
        transparent 75%,
        transparent);
    }

    /*
     *  STYLE 12
     */

    #style-12::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.9);
      border-radius: 10px;
      background-color: #444444;
    }

    #style-12::-webkit-scrollbar {
      width: 12px;
      background-color: #f5f5f5;
    }

    #style-12::-webkit-scrollbar-thumb {
      border-radius: 10px;
      background-color: #d62929;
      background-image: -webkit-linear-gradient(90deg,
        transparent,
        rgba(0, 0, 0, 0.4) 50%,
        transparent,
        transparent);
    }

    /*
     *  STYLE 13
     */

    #style-13::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.9);
      border-radius: 10px;
      background-color: #cccccc;
    }

    #style-13::-webkit-scrollbar {
      width: 12px;
      background-color: #f5f5f5;
    }

    #style-13::-webkit-scrollbar-thumb {
      border-radius: 10px;
      background-color: #d62929;
      background-image: -webkit-linear-gradient(90deg,
        transparent,
        rgba(0, 0, 0, 0.4) 50%,
        transparent,
        transparent);
    }

    /*
     *  STYLE 14
     */

    #style-14::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6);
      background-color: #cccccc;
    }

    #style-14::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-14::-webkit-scrollbar-thumb {
      background-color: #fff;
      background-image: -webkit-linear-gradient(90deg,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 1) 25%,
        transparent 100%,
        rgba(0, 0, 0, 1) 75%,
        transparent);
    }

    /*
     *  STYLE 15
     */

    #style-15::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
      background-color: #f5f5f5;
      border-radius: 10px;
    }

    #style-15::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-15::-webkit-scrollbar-thumb {
      border-radius: 10px;
      background-color: #fff;
      background-image: -webkit-gradient(linear,
        40% 0%,
        75% 84%,
        from(#4d9c41),
        to(#19911d),
        color-stop(0.6, #54de5d));
    }

    /*
     *  STYLE 16
     */

    #style-16::-webkit-scrollbar-track {
      -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
      background-color: #f5f5f5;
      border-radius: 10px;
    }

    #style-16::-webkit-scrollbar {
      width: 10px;
      background-color: #f5f5f5;
    }

    #style-16::-webkit-scrollbar-thumb {
      border-radius: 10px;
      background-color: #fff;
      background-image: -webkit-linear-gradient(top,
        #e4f5fc 0%,
        #bfe8f9 50%,
        #9fd8ef 51%,
        #2ab0ed 100%);
    }
  </style>
</head>

<body>
  <div id="wrapper">
    <div class="scrollbar" id="style-default">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-1">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-2">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-3">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-4">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-5">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-6">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-7">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-8">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-9">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-10">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-11">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-13">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-14">
      <div class="force-overflow"></div>
    </div>

    <div class="scrollbar" id="style-15">
      <div class="force-overflow"></div>
    </div>
  </div>
</body>

</html>

参考链接:

程序分享如何实现实时滚动条效果类Mathematica的manipulate-manipulate.m 大家知道,在MATLAB中的滚动条控件是“非实时”的。所谓非实时,指的是用户在拖动滚动条时,滚动条的callback函数不会被触发,只有放开滚动条后,callback函数才会被调用一次。 但是,有的时候我们可能会有这样的需要:比如我们在窗口中做出了一个y = f函数的图形,这个函数有几个参数a, b, c ... 然后我们希望通过用滚动条的形式来改变这些参数的数值,并实时地在窗口中观察参数改变后的图形的结果。但直接使用滚动条控件的话,拖动滚动条时图形不会更新。想看到参数连续变化时对图形的影响,就只能一下一下地点击滚动条两端的箭头,非常繁琐。 这个功能在Mathematica下用manipulate命令就非常容易实现。但是在MATLAB下却一直没有提供具有类似功能的函数。所以我自己写了一个MATLAB的manipulate版本。当然,现在这个版本只能实现最基本的2D plot对象。至于其他类型的图形对象,我会在以后慢慢添加。 后 (或者在 http://www.mathworks.com/matlabcentral/fileexchange/36512-manipulate-interactive-parametrized-plotting 下载,帮我增加点人气) 在命令行中输入 manipulate复制代码 即可看到如下图所示的界面,用户可以随意拖动滚动条,axes中的内容会实时更新。 manipulate_demo.gif 实时滚动条效果演示 用户也可以使用自己给定的函数,并且可以操纵任意数目的参数,比如下列语句: manipulate*x param),[-10:10],[2 0]},{[-10 10],[-10 10]}, {1,'Slope',1 10}, {2,'Shift',-5 5})复制代码 会产生一条直线,用户可以操纵其斜率和截距。 更多使用方法请看函数自带的帮助(英文)。 欢迎提出宝贵意见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值