我有一个移动网站,其中有一个带滚动的简单侧边菜单栏,当在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插件或其他解决方案。
有什么建议吗?
答案 0 :(得分:0)
使用css中的以下内容解决:
而不是在css #menu选择器中使用以下内容
overflow: hidden;
使用此代替
overflow-y: scroll;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;