这里是你在找什么: https://codepen.io/MandeepSingh/pen/mEkJKY
在我codepen,我设置正确的(蓝色)格为“自动”的宽度和动画按钮单击左div的宽度。这将蓝色的div移动到最右边(通过动画)。当再次点击该按钮时,我只是将黄色div的宽度从100%恢复为初始大小。
我想你不想在动画中隐藏div的内容,所以我在这两个div中放入了一些垃圾文本,以便您可以看到随着调整大小的div移动的内容。
最后一两件事,我遵守了我的代码尽可能靠近你的,但你能避免使用隐藏(),显示()用一个标志变量来切换按钮单击动画功能。
下面的代码...
HTML:
<div id="left"> left content
<button onclick="toggle()">Click Me</button>
<br>
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam
</div>
<div id="right">right content
<br><br>
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam,
Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam, Agdam chagdm bagdam dagdam
</div>
CSS:
html, body {
height: 100%;
}
body{
font-size:13px;
font-family:calibri;
}
#right {
height: 100%;
width: auto;
background: #9ff;
overflow: hidden;
}
#left {
height: 100%;
float: left;
width: 40%;
background: #ff9;
}
JS:
function toggle()
{
if($("#right").is(":visible"))
{
$('#left').animate({"width":"100%" }, 3000, function(){
$("#right").hide();
});
}
else
{
$('#right').show();
$('#left').animate({"width":"40%"}, 3000);
}
}
- 或使用,如果你想这个JS以避免hide()和show():
var flag = 0;
function toggle()
{
if(flag == 0)
{
$('#left').animate({"width":"100%" }, 3000);
flag = 1;
}
else
{
$('#left').animate({"width":"40%"}, 3000);
flag = 0;
}
}
作为一个加号,您不必为此动画使用Jquery UI。
不明白你想要什么。请解释 – Atula
@Atula,对不明的帖子感到抱歉。我编辑了原文,以更好地阐明问题。谢谢。 –