时之沙o

隐藏滚动条同时又可以滚动(解决不同浏览器之间的兼容性问题)

在我们进行网站开发时,可能会有为了保持网站的美观和整洁性而想要隐藏滚动条的想法。在最近的网站开发过程中,我就曾碰到过这个问题。针对这个问题也进行了相应的研究学习,整理了如下的几个思路:

一、使用CSS样式来解决(Chrome浏览器)

  

#content::-webkit-scrollbar { /*此处设置滚动条的宽度和高度,宽度为纵向滚动条设置,高度为横向滚动条设置,设置为0的滚动条消失*/
        width: 4px;     
        height: 4px;
        }
        #content::-webkit-scrollbar-thumb {/*滚动条滑块样式*/
        border-radius: 5px;
        -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
        background: rgba(0,0,0,0.2);
        }
    #content::-webkit-scrollbar-track {/*滚动条轨道样式*/
        -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
        border-radius: 0;
        background: rgba(0,0,0,0.1);
    }

 

  在Chrome浏览器中,只要把你的滚动区域加上上述代码,就可以对滚动条的样式进行设置了。然而这种方法只对Chrome浏览器有效,对于IE浏览器,使用上述代码是没有任何效果的。当然IE浏览器也可以对滚动条样式进行设置,但是只能对滚动条的颜色这一项进行设置。代码如下:

  

    #content{
            /*三角箭头的颜色*/
            scrollbar-arrow-color: #fff;
            /*滚动条滑块按钮的颜色*/
            scrollbar-face-color: #0099dd;
            /*滚动条整体颜色*/
            scrollbar-highlight-color: #0099dd;
            /*滚动条阴影*/
            scrollbar-shadow-color: #0099dd;
            /*滚动条轨道颜色*/
            scrollbar-track-color: #0066ff;
            /*滚动条3d亮色阴影边框的外观颜色——左边和上边的阴影色*/
            scrollbar-3dlight-color:#0099dd;
            /*滚动条3d暗色阴影边框的外观颜色——右边和下边的阴影色*/
            scrollbar-darkshadow-color: #0099dd;
            /*滚动条基准颜色*/
            scrollbar-base-color: #0099dd;
        }

而为了应对不同浏览器之间的兼容性,我们要采用第二种方法,接下来请看第二种方法。

二、在滚动区域外在嵌套一层空白div,该层div有宽高,宽度应当小于滚动区域一个滚动条的宽度,设置外层overflow为hidden 溢出部分不显示,这样一来滚动条的部分已经在外层空间溢出,根据设定,将不再页面显示了。如下:

这里Chrome和IE浏览器滚动条默认宽度都是17px,所以外层比滚动层宽度少17px。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .scroll-shell {
                width: 100px;
                height: 600px;
                overflow: hidden;
            }
            .scroll {
                width: 117px;
                height: 600px;
                overflow: auto;
            }
            .red{
                width: 100%;
                height: 50%;
                background-color: red;
            }
            .green{
                width: 100%;
                height: 50%;
                background-color: green;
            }
            .blue{
                width: 100%;
                height: 50%;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="scroll-shell">
            <div class="scroll">
                <div class="red">1</div>
                <div class="green">2</div>
                <div class="blue">3</div>
            </div>
        </div>
    </body>
</html>

上述html可以直接运行,采用的就是第二种方法。红绿蓝三种颜色已经超出滚动区域范围,可滚动显示,但是滚动条已经被我隐藏了,因此看不到。

应用第二种方法,我们就能够完美解决隐藏滚动条和浏览器之间兼容性的问题了。

posted on 2019-01-09 15:16  时之沙o  阅读(3052)  评论(0编辑  收藏  举报

导航