3

直到今天,当我遇到 jQuery 中的 slideDown jumpy 错误时,我仍然感到惊讶。已经阅读了很多关于它的文章,关于设计师的 jQuery 文章等等。仍然无法绕过它。

如果不存储高度等,是否仍然没有简单的方法来解决这个问题?还有其他方法可以达到相同的结果吗?

为我的代码制作了一个基本示例,但我想它与任何其他有问题的情况相同。

http://jsbin.com/oyokoc/20/edit

4

1 回答 1

6

实际上没有你所说的这样的错误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/

于 2013-06-07T10:17:34.717 回答