0

I have a mobile website which has a simple side menu bar with scroll, when scrolling the menu on safari it lags a lot (struggle to scroll).

here is the 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>

here is the css:

#menu
{

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

}

and the 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";
    }
}

I didn't include the rest of html where there is a menu button with onclick action that trigger the toggleMenu() javascript function.

Also I don't want to use ready made jQuery plugins or other solutions.

any suggestions ?

4

1 回答 1

0

在css中使用以下解决:

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

overflow: hidden;

改用这个

overflow-y: scroll;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
于 2013-08-18T18:45:34.953 回答