css隐藏移动端滚动条并平滑滚动(代码示例)

2020-07-23 11:05:37

本篇文章给大家带来的内容是关于css隐藏移动端滚动条并平滑滚动(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

HTML代码如下

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>移动端隐藏滚动条解决方案</title>    <style type="text/css">    * {        padding: 0;        margin: 0;    }    .par-type {        height: 50px;        -webkit-box-sizing: border-box;        box-sizing: border-box;        overflow: hidden;    }    .type {        height: 100%;        overflow-x: scroll;        overflow-y: hidden;        background-color: #999;    }    .con {        width: 640px;        height: 100%;        display: flex;        align-items: center;    }    .con>li {        text-align: center;        font-size: 16px;        width: 80px;        color: #fff;        list-style: none;    }    .par-type ::-webkit-scrollbar {        display: none;    }    </style></head><body>    <div>        <nav>            <ul>                <li>推荐</li>                <li>娃娃</li>                <li>日用品</li>                <li>美妆护肤</li>                <li>娃娃</li>                <li>日用品</li>                <li>美妆护肤</li>                <li>娃娃</li>            </ul>        </nav>    </div></body></html>

设置滚动条隐藏

.par-type ::-webkit-scrollbar {display: none;}

此时内容可以正常滚动,滚动条也已隐藏,但是ios手机上出现滚动不流畅,影响用户的体验,安卓手机上是正常的。此时,加上css代码:-webkit-overflow-scrolling: touch;即可解决,如下:

.type {        height: 100%;        overflow-x: scroll;        overflow-y: hidden;        background-color: #999;        /*解决ios上滑动不流畅*/        -webkit-overflow-scrolling: touch;    }

但是此时又会出现新的问题,滚动条又出现了!!!
为了用户的体验,最好是能流畅滚动并且滚动条是隐藏的,接下来开始放大招了。。。
滚动条是出现在type标签上的,所以对type进行如下设置:

.type {        /*width: 100%;*/        height: 100%;        overflow-x: scroll;        overflow-y: hidden;        background-color: #999;        /*解决ios上滑动不流畅*/        -webkit-overflow-scrolling: touch;        /*纵向超出部分将会隐藏,即滚动条部分被挤出可视区域*/        padding-bottom: 20px;    }

ps:
1.type的外层容器设置了固定高度,并且设置了内容溢出隐藏,所有type的纵向的超出内容是不可见的,即:overflow:hidden;
2.padding-bottom等于20px并非固定值,只要你的设置的值大小足够将滚动条挤出可视区域即可。

完整代码如下:

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>移动端隐藏滚动条解决方案</title>    <style type="text/css">    * {        padding: 0;        margin: 0;    }    .par-type {        height: 50px;        -webkit-box-sizing: border-box;        box-sizing: border-box;        overflow: hidden;    }    .type {        height: 100%;        overflow-x: scroll;        overflow-y: hidden;        background-color: #999;        /*解决ios上滑动不流畅*/        -webkit-overflow-scrolling: touch;        padding-bottom: 20px;    }    .con {        width: 640px;        height: 100%;        display: flex;        align-items: center;    }    .con>li {        text-align: center;        font-size: 16px;        width: 80px;        color: #fff;        list-style: none;    }    .par-type ::-webkit-scrollbar {        display: none;    }    </style></head><body>    <div>        <nav>            <ul>                <li>推荐</li>                <li>娃娃</li>                <li>日用品</li>                <li>美妆护肤</li>                <li>娃娃</li>                <li>日用品</li>                <li>美妆护肤</li>                <li>娃娃</li>            </ul>        </nav>    </div></body></html>