<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>移動端隱藏滾動條解決方案</title> <style type="text/css"> * { padding: 0; margin: 0; } .container { height: 50px; -webkit-box-sizing: border-box; box-sizing: border-box; overflow: hidden; } .nav { 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; list-style: none; } .container ::-webkit-scrollbar { display: none; } </style> </head> <body> <div class="container"> <nav class="nav"> <ul class="con"> <li>元素一</li> <li>元素二</li> <li>元素三</li> <li>元素四</li> <li>元素五</li> <li>元素六</li> <li>元素七</li> <li>元素八</li> </ul> </nav> </div> </body> </html>
設置滾動條隱藏: .container ::-webkit-scrollbar {display: none;}
此時效果已經實現,既可滑動對應元素的內容,也隱藏了滾動條。但是,ios上的滑動效果很不流暢,不利於用戶體驗,Android上是ok的;此時可以加上這樣一句css代碼(-webkit-overflow-scrolling: touch;),如下:
.nav { height: 100%; overflow-x: scroll; overflow-y: hidden; background-color: #999; /*解決ios上滑動不流暢*/ -webkit-overflow-scrolling: touch; }
這時ios上滑動變得流暢了,但是又出現了一個新的問題,滾動條又重現了,如圖:

現在的需求是:既要不出現滾動條,又要滑動流暢,可以使用接下來一個小技巧:
因為滾動條是出現nav這個標簽元素上的,所以可以進行如下設置:**
.nav { /*width: 100%;*/ height: 100%; overflow-x: scroll; overflow-y: hidden; background-color: #999; /*解決ios上滑動不流暢*/ -webkit-overflow-scrolling: touch; /*縱向超出部分將會隱藏,即滾動條部分被擠出可視區域*/ padding-bottom: 20px; }
正確代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>移動端隱藏滾動條解決方案</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
.container {
height: 50px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
}
.nav {
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;
}
.container ::-webkit-scrollbar {
display: none;
}
</style>
</head>
<body>
<div class="container">
<nav class="nav">
<ul class="con">
<li>元素一</li>
<li>元素二</li>
<li>元素三</li>
<li>元素四</li>
<li>元素五</li>
<li>元素六</li>
<li>元素七</li>
<li>元素八</li>
</ul>
</nav>
</div>
</body>
</html>
