Javascript 为什么jqueryanimate将我的div设置为display:none?
jqueryanimate对我的CSS做了一些意想不到的事情。当设置Javascript 为什么jqueryanimate将我的div设置为display:none?,javascript,jquery,css,Javascript,Jquery,Css,jqueryanimate对我的CSS做了一些意想不到的事情。当设置paddingLeft动画时,它将div设置为显示:无;这是无意的,我不明白为什么会这样 $(“#菜单切换”)。单击(函数(事件){ event.preventDefault(); if($('#边栏包装器').width()==0){ $(“#侧边栏包装”)。设置动画({ 宽度:“切换” }, { 持续时间:600, 队列:false, 完成:函数(){/*动画完成*/} })$(“#页面内容包装”)。动画({ paddin
paddingLeft
动画时,它将div设置为显示:无
;这是无意的,我不明白为什么会这样
$(“#菜单切换”)。单击(函数(事件){
event.preventDefault();
if($('#边栏包装器').width()==0){
$(“#侧边栏包装”)。设置动画({
宽度:“切换”
}, {
持续时间:600,
队列:false,
完成:函数(){/*动画完成*/}
})$(“#页面内容包装”)。动画({
paddingLeft:“切换”
}, {
持续时间:600,
队列:false,
完成:函数(){/*动画完成*/}
});
}否则{
$(“#侧边栏包装”)。设置动画({
宽度:“切换”
}, {
持续时间:600,
队列:false,
完成:函数(){/*动画完成*/}
})$(“#页面内容包装”)。动画({
paddingLeft:“切换”
}, {
持续时间:600,
队列:false,
完成:函数(){/*动画完成*/}
});
}
});
已解决:
如果有人感兴趣,这里有一个解决方案:来自文档:
除数值外,每个属性还可以采用字符串“显示”、“隐藏”和“切换”。这些快捷方式允许根据元素的显示类型自定义隐藏和显示动画。为了使用jQuery的内置切换状态跟踪,“toggle”关键字必须始终作为动画属性的值
如果我的内存可用,并且如文档所示,这些快捷方式会做额外的工作,在动画开始和完成时字面上“显示”和“隐藏”元素。jquery似乎考虑了最初的显示,然后将其存储起来,以便以后恢复。Toggle只是一个“show”和“hide”宏,似乎以同样的方式工作。你也可以包含最小的html吗?我想看看plunker或JSFIDLE可能是因为这样:`width:'Toggle'`那么好吧。我如何解决这个问题?只需使用+=和-=?这似乎是一个与此处发布的问题不同的问题,但我确实很快为您准备了这个问题:或者,您可以使用JS简单地切换一个或多个CSS类,并让CSS处理动画。实际上,在听到切换的功能后,我自己修复了它。酷。很高兴这有帮助!:)
<script>
$("#menu-toggle").click(function(event){
event.preventDefault();
if($('#sidebar-wrapper').width() == 0){
$("#sidebar-wrapper").animate({
width: 'toggle'
}, {
duration: 600,
queue: false,
complete: function() { /* Animation complete */ }
});$("#page-content-wrapper").animate({
paddingLeft: 'toggle'
}, {
duration: 600,
queue: false,
complete: function() { /* Animation complete */ }
});
}else{
$("#sidebar-wrapper").animate({
width: 'toggle'
}, {
duration: 600,
queue: false,
complete: function() { /* Animation complete */ }
});$("#page-content-wrapper").animate({
paddingLeft: 'toggle'
}, {
duration: 600,
queue: false,
complete: function() { /* Animation complete */ }
});
}
});
</script>