Javascript jQuery-animate()只工作一次
我的网页上有一些隐藏或显示侧菜单的功能。我有两个div,Javascript jQuery-animate()只工作一次,javascript,jquery,css,Javascript,Jquery,Css,我的网页上有一些隐藏或显示侧菜单的功能。我有两个div,#折叠侧导航,和#展开侧导航。现在的设置方式是,默认情况下,expand side nav的样式设置为display:none。然后,当用户单击折叠侧导航id时,侧导航折叠,然后显示#展开侧导航 我注意到新的#expand side nav的定位需要进一步向右,并且比#collapse side nav的div稍高一点,我想通过动画来实现这一点,使它看起来圆滑。我的代码如下。但是,当我在浏览器中测试时,动画只工作一次 $('#collaps
#折叠侧导航
,和#展开侧导航
。现在的设置方式是,默认情况下,expand side nav的样式设置为display:none代码>。然后,当用户单击折叠侧导航
id时,侧导航
折叠,然后显示#展开侧导航
我注意到新的#expand side nav的定位需要进一步向右,并且比#collapse side nav的
div稍高一点,我想通过动画来实现这一点,使它看起来圆滑。我的代码如下。但是,当我在浏览器中测试时,动画只工作一次
$('#collapse-side-nav').click(function() {
$('.side-nav').toggle(300);
$('#collapse-side-nav').css('display', 'none');
$('#expand-side-nav').css('display', 'inherit');
$('#expand-side-nav').animate({
'margin-left' : 34,
'margin-top' : 2
}, "slow");
$('.container').animate({
'padding-left' : 0
}, "slow");
});
$('#expand-side-nav').click(function() {
$('.side-nav').toggle(325);
$('#expand-side-nav').css('display', 'none');
$('#collapse-side-nav').css('display', 'inherit');
$('.container').animate({
'padding-left' : 200
}, "slow");
});
编辑:
今天晚些时候我会试着发一把小提琴。我还试图指控而不是宣布确切的像素()
但是每次都会增加,这意味着每次用户单击div时,css都会越来越向右推。发布HTML或准备JSIDLE。代码中有三行不必要的逗号,这可能会阻止JS再次执行:“padding left”:200,@SzybkiSasza我已经去掉了动画中不必要的逗号。然而,这个问题仍然存在。我还更新了问题以反映代码中的这些更改。当您再次尝试设置动画时,元素的边距已设置为这些值。你必须重置动画的边距才能产生任何效果。@Guffa我如何重置动画?发布你的HTML,或准备一个JSFIDLE。你的代码中有三行不必要的逗号,这可能会阻止JS再次执行:“padding left”:200,@SzybkiSasza我已经去掉了动画中不必要的逗号。然而,这个问题仍然存在。我还更新了问题以反映代码中的这些更改。当您再次尝试设置动画时,元素的边距已设置为这些值。你必须重置动画的边距才能产生任何效果。@Guffa我如何重置动画?发布你的HTML,或准备一个JSFIDLE。你的代码中有三行不必要的逗号,这可能会阻止JS再次执行:“padding left”:200,@SzybkiSasza我已经去掉了动画中不必要的逗号。然而,这个问题仍然存在。我还更新了问题以反映代码中的这些更改。当您再次尝试设置动画时,元素的边距已设置为这些值。您必须重置动画的边距才能产生任何效果。@Guffa我如何重置动画?