【发布时间】:2015-06-08 14:13:39
【问题描述】:
我正在使用 slideToggle 为隐藏的 div 设置动画。 因为它在顶部有一个固定位置,所以我想使用隐藏 div 的当前高度添加该容器 div 的填充顶部的动画。
然而,类在点击时会正确切换,并且填充添加了正确数量的像素,在切换掉类后填充仍然存在。
当我在切换的类上应用填充时,即使该类在第二次单击时被删除(切换它),它仍然存在,怎么会?
js:
$('#myButton').click(function(e){
e.preventDefault();
$('#myDiv').slideToggle( function(){
var myDivHeight = $(this).outerHeight();
$('.containerDiv').toggleClass('myDivOpened');
$('.myDivOpened').css('padding-top', myDivHeight + 15);
});
});
非常感谢。
【问题讨论】:
-
您将样式添加到元素而不是类。为什么不直接将填充添加到切换类?
-
因为padding和class没有关系......
-
好的,实际上样式被添加到元素而不是类是有意义的。但是我将如何在切换类上添加填充,这不是我在做什么。 $('.myDivOpened').css('padding-top', myDivHeight + 15);如果会有toggleCss之类的东西会用hasClass试试。谢谢大家
-
所以添加逻辑以在删除类时删除填充。
-
我真的很难理解为什么您不将填充添加到 CSS 类并打开和关闭该类。另外,每次你点击
#myButton时,它都会在 DOM 中搜索所有具有myDivOpened和containerDiv类的元素,这可能不是很有效。
标签: javascript jquery html