我有一个这个简单的移动网页,我正在尝试建立一个像侧面菜单按钮的Facebook。我试图用CSS overflow-x:hidden来禁用水平滚动,但它不起作用。这是我的代码,任何帮助将不胜感激:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var win = $("#right-side");
var position = win.position();
//alert( "left: " + position.left + ", top: " + position.top );
if(position.left < 100)
{
$("#right-side").animate({left:'250px'});
}else{
$("#right-side").animate({left:'0px'});
}
});
});
</script>
<style>
body{overflow-x: hidden;font-family: sans-serif;}
#right-side{
background:#BFC7D8;;
left:0;
top:0;
height:100%;
width:100%;
position:absolute;
}
#left-menu
{
background:#323949;
left:0;
top:0;
height:100%;
width:250px;
position:absolute;
}
#navigation { font-size:20px; width:250px; padding-top:100px; }
#navigation ul { margin:0px; padding:0px; }
#navigation li { list-style: none; }
ul.top-level li > a {
display: block;
border-bottom: 1px solid rgba(0,0,0, 0.1);
border-top: 1px solid rgba(255, 255, 255, 0.1);
padding: 15px;
text-shadow: 0 1px 0 #000;
text-decoration: none;
color: #ccc;
text-indent: 20px;
}
#toolbar
{
width:100%;
height:50px;
background:#00F;
}
</style>
<div id="left-menu">
<div id="navigation">
<ul class="top-level">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">FAQ</a></li>
<li><a href="#">News</a></li>
</ul>
</div>
</div>
<div id="right-side">
<div id="toolbar">
<button>Menu</button>
</div>
<h1>This is a test</h1>
</div>
答案 0 :(得分:0)
我已将您的代码放在一个小提琴中,但我无法将“缩放”元标记添加到头部,因此很难在手机上进行测试。 http://jsfiddle.net/Pevara/Ku5nY/1/show/
似乎在桌面上工作正常,没有滚动条。
我确实在你的css中添加了以下内容:
body{
overflow-x:hidden;
font-family: sans-serif;
/* added: */
max-width: 100%;
height: 100%;
}
不确定它是否会有所作为,但值得一试...
答案 1 :(得分:0)
大卫。
您是否尝试过使用此功能:http://mmenu.frebsite.nl/
或者,看看这个,看看你是否可以用它来调整你的代码:
您会注意到有3个功能:
$('#trigger').click( function() {
if ($('#popout').hasClass('hidden')) {
$('#popout').removeClass('hidden');
showPopout();
}
else {
$('#popout').addClass('hidden');
hidePopout();
}
});
function showPopout() {
$('#popout').animate({
left: 0
}, 'slow', function () {
$('#trigger span').html('Close'); //change the trigger text at end of animation
});
}
function hidePopout() {
$('#popout').animate({
left: -40
}, 'slow', function () {
$('#trigger span').html('Show'); //change the trigger text at end of animation
});
}
答案 2 :(得分:0)
我有一个类似的问题,我的内容背后有菜单,并将我的内容推到左边,以显示隐藏在后面的Facebook风格菜单。
我正在应用'绝对'定位模仿幻灯片并将内容从文档流中取出。在隐藏溢出的情况下,您似乎可以通过触摸拉出内容层(这听起来与您遇到的问题相同)。即使有溢出标准,x&amp; y几乎所有这一切仍然存在。这也是宽度:身体等100%
当我将内容层滑动到“相对”时,我将内容的高度(当菜单打开时)降低到窗口高度似乎对我有用,并且在设备上看起来相当稳健。
祝你好运,这对任何遇到类似问题的人都有帮助。谢谢, 戴夫
答案 3 :(得分:0)
这里很快。事情是,只有你定义模态的高度才有效。如果没有定义高度,它将无法工作。将对话框设置为高度100%&amp;溢出隐藏。然后将内容设置为position:absolute,top:0,bottom:0,left:0,right:0,margin:auto并定义高度(在下面的示例中为250px,用于登录模式)。我知道这听起来不合理 - 它可能是一个CSS故障,但是:它有效 - 跨浏览器&amp;跨平台(没有检查过iPhone)。
<div class="modal-dialog" style="height:100%;overflow:hidden"><div class="modal-content" style="position:absolute;margin:auto;top:0;bottom:0;left:0;right:0;height:250px;">