純css隱藏移動端滾動條解決方案(ios上流暢滑動)


<!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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM