我在玩一个想法,在那里我想模仿主要容器元素实际上左右移动的Facebook移动应用程序。然而,我已经尝试了这几种方式,我想要移动的元素似乎调整了大小而不是移动,我不知道是什么或为什么它会这样做,而不是按我期望的方式移动。jQuery将固定或绝对定位的元素移动到左侧或右侧
注意我试过主元素作为固定元素和绝对元素。我也尝试在javascript中使用'left'或'right'而不是'marginLeft'或'marginRight'。
所以我想知道我在做什么错了?
的CSS:
html, body{margin:0;padding:0;width:100%;height:100%;}
#wrap_main{background-color:gray;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;}
#wrap_bottom_left{background-color:aqua;width:50%;float:left;}
#wrap_bottom_right{background-color:green;width:50%;float:right;}
的JavaScript:
var isMenuOpen = false;
$(document).ready(function()
{
//code
});
$('#menu_left_trigger').click(function(e)
{
e.preventDefault();
var $mainEle = $('#wrap_main');
if(isMenuOpen == false)
{
isMenuOpen = true;
$mainEle.animate({marginLeft:"10%"}, 1000);
}
else
{
isMenuOpen = false;
$mainEle.animate({marginLeft:"0"}, 1000);
}
});
$('#menu_right_trigger').click(function(e)
{
e.preventDefault();
var $mainEle = $('#wrap_main');
if(isMenuOpen == false)
{
isMenuOpen = true;
$mainEle.animate({marginRight:"10%"}, 1000);
}
else
{
isMenuOpen = false;
$mainEle.animate({marginRight:"0"}, 1000);
}
});
的HTML:
<div id="wrap_main">
<a href="javascript:void(0);" id="menu_left_trigger">Menu</a><br>
<a href="javascript:void(0);" id="menu_right_trigger">Sub Menu</a>
</div>
<div id="wrap_bottom_left">
<ul>
<li>Something</li>
<li>Something</li>
<li>Something</li>
<li>Something</li>
</ul>
</div>
<div id="wrap_bottom_right">
<ul>
<li>Something</li>
<li>Something</li>
<li>Something</li>
<li>Something</li>
</ul>
</div>
isMenuOpen逻辑并不完整,而且我明白,如果对方是开放的(或者在当时开放的过程中),我打算在这里设置停止点。然而,在我到那之前。我意识到,当我点击从右侧打开的容器时,容器中的内容停留在屏幕上,而容器重新调整大小。这不是渴望。就自身的余裕而言,我也尝试过。但是我不会发布各种版本的相同代码来证明我做过,尽管我在原始文章中提到了它 – chris