侧菜单滚动滞后于safari(ios)

side menu scroll lags on safari (ios)

本文关键字:ios safari 菜单 滚动 滞后      更新时间:2023-09-26

我有一个移动网站,它有一个带滚动的简单侧菜单栏,当在safari上滚动菜单时,它会滞后很多(难以滚动)。

这是html:

<body>
    <div id="menu_background" onclick="toggleMenu()"></div>
    <div id="menu">
        <ul>
        <li>
        <div>item 1</div>
        </li>
            //other items goes here
    </ul>
    </div>
    <div id="global_container">
        //some content goes here
    </div>
</body>

这是css:

#menu
{
    position: absolute;
    top: 0px;
    bottom: 0px;
    z-index: 100;
    overflow: hidden;
    display:none;
    width: 0%;
    padding: 1%;
}

和javascript:

var menuShown = false;
function toggleMenu(){
    var menu = document.getElementById("menu");
    var menuBackground = document.getElementById("menu_background");
    var globalContainer = document.getElementById("global_container");
    if(!menuShown){
        menuShown = true;
        menuBackground.style.visibility = "visible" ;
        menu.style.width="60%";
        menu.style.display="block";
        menu.style.overflowY="auto";
        globalContainer.style.position="fixed";
        globalContainer.style.right="62%";  
    }
    else{
        menuShown = false;
        menuBackground.style.visibility = "hidden" ;
        menu.style.width="0%";
        menu.style.display="none";
        menu.style.overflowY="hidden";
        globalContainer.style.position="static";
    }
}

我没有包括html的其余部分,其中有一个带有onclick操作的菜单按钮,可以触发toggleMenu()javascript函数。

此外,我不想使用现成的jQuery插件或其他解决方案。

有什么建议吗?

在css中使用以下内容解决:

而不是在css#菜单选择器中使用以下内容

overflow: hidden;

用这个代替

overflow-y: scroll;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;