直到今天,当我遇到 jQuery 中的 slideDown jumpy 错误时,我仍然感到惊讶。已经阅读了很多关于它的文章,关于设计师的 jQuery 文章等等。仍然无法绕过它。
如果不存储高度等,是否仍然没有简单的方法来解决这个问题?还有其他方法可以达到相同的结果吗?
为我的代码制作了一个基本示例,但我想它与任何其他有问题的情况相同。
直到今天,当我遇到 jQuery 中的 slideDown jumpy 错误时,我仍然感到惊讶。已经阅读了很多关于它的文章,关于设计师的 jQuery 文章等等。仍然无法绕过它。
如果不存储高度等,是否仍然没有简单的方法来解决这个问题?还有其他方法可以达到相同的结果吗?
为我的代码制作了一个基本示例,但我想它与任何其他有问题的情况相同。
实际上没有你所说的这样的错误slidetoggle
,
问题在于浏览器在默认情况下的行为方式padding
以及margin
对于像这样的标签p
,如果它们在默认情况下不可见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/