侧面菜单滚动滞后于野生动物园(ios)

时间:2013-08-13 01:27:05

标签: javascript html css mobile-safari

我有一个移动网站,其中有一个带滚动的简单侧边菜单栏,当在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插件或其他解决方案。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

overflow: hidden;

使用此代替

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