直到今天,当我在 jQuery 中遇到 slideDown 跳动错误时,我仍然感到惊讶。已经阅读了很多关于它的文章,关于 jQuery for designers 的文章等等。仍然无法理解它。
如果不存储高度等,是否仍然没有简单的方法可以解决这个问题?还有其他方法可以达到相同的结果吗?
为我的相关代码制作了一个基本示例,但我想它与任何其他错误案例一样。
最佳答案
实际上,slidetoggle
中没有您所说的错误,
问题在于浏览器如何处理像 p
这样的标签的默认 padding
和 margin
,如果它们不可见默认不添加padding
和margin
,
但是一旦它们变得可见,它们就会被添加到布局中,即您提到的这种跳跃的原因。
这是我为忽略这些实现错误所做的事情:
.more{
display: none;
background: #eee;
/* added to make the margin and padding instead of p */
padding: 5px;
margin-top: 5px;
}
/* removing the default margin and padding of p */
p{
margin: 0px;
padding :0px;
}
这是演示 http://jsbin.com/udexix/1/
更新
如果你想使用多个 p
并且不想更改默认的填充和边距,你可以做的是将所有 p 的显示样式更改为 inline-block
这也是它的代码:
.more{
display: none;
background: #eee;
/* no changes here */
}
/* changing the display property of p */
p{
display: inline-block;
}
这是演示 2 http://jsbin.com/udexix/8/
关于javascript - Jquery slideToggle,仍然没有简单的非跳动解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981536/