2010-10-28 61 views
1

这可能有点愚蠢的问题,但我刚开始在jQuery中做很多事情,我突然想知道如何解决一个我从来没有打扰过的问题,框架的帮助。用jQuery(手风琴技术)扩展内容...快速问题

,我们有两个div元素:

<body> 
    <div id="lorem1" style="display:block; height:400px;"> 
     Lorem ipsum... 
    </div> 
    <div id="lorem2" style="display:hidden;"> 
     dolor sit amet... 
    </div> 
</body> 

现在,如果我们想用一个手风琴效果萎缩第一div了存在和发展的第二个进入存在,我认为我们会具有下列简单的逻辑:

  1. 迭代降低#lorem1的高度,直到它到达0
  2. #lorem1display:none;
  3. 设置#lorem2display:block; height:0;
  4. 迭代增加#lorem2

高度那么问题...增加lorem2 ...的高度,到什么时候?我们如何知道元素的最终高度?我们显然不能选择一个静态值,比如“将其增加到400px”,因为lorem2的内容可能高于400像素。或者,如果它小于400像素,则页面上的任何背景颜色/图像或其他元素可能看起来不正确。

那么我们如何计算何时停止我们的手风琴?

回答

0

使用jQuery你可以使用得心应手toggle属性:

​​

我相信其他JS-图书馆提供类似的可能性。


EDIT:另一种方法是动画对象,直到auto的高度。或者不要通过CSS隐藏它,通过JS获取对象的尺寸,然后使用JS隐藏它。现在你知道尺寸来再次显示它。

+0

看到,因为没有办法知道的“自动”的高度,我想在存储页面加载的尺寸可能是唯一的选择。除非可以将高度设置为自动,但仍然隐藏,请获取高度,然后将高度设置为0并取消隐藏... – stevendesu 2010-10-29 16:27:46

0

我认为.slideDown()和.slideUp()会为你做的:http://api.jquery.com/slideDown/

+0

还没有离开jQuery有这个功能,但不幸的是,这并没有回答我原来的问题= )jQuery如何知道何时停止滑动? – stevendesu 2010-10-29 16:26:48

+0

如果有人可以弄清楚,我也很想知道! – banjomonster 2010-11-02 03:54:42