jQuery 和CSS - 在动画时匹配 div 的高度
我有两个
在父
内向左浮动。使用 jQuery,div.will_slide_down
将在某个时刻向下滑动(使用 $("div.will_slide_down").slideDown()
)。当向下滑动时,div.first
的高度也应该同时增加以匹配 div.second
的高度。我怎样才能做到这一点?
<div class="wrap">
<div class="first" style="width: 200px; float: left;"></div>
<div class="second" style="width: 700px; float: left;">
<p>BlaBlaBla</p>
<div class="will_slide_down" style="display: none">Some hidden text</div>
</div>
</div>
我能想到的唯一方法是在 div.second
的 slideDown
完成时运行函数,但这会弄乱布局。它应该同时发生。
I have two <div>
's floated left within a parent <div>
. Using jQuery, the div.will_slide_down
will slide down at some point (using $("div.will_slide_down").slideDown()
). When it is sliding down, the div.first
's height should also increase to match the height of the div.second
at the same time.
How can I do that?
<div class="wrap">
<div class="first" style="width: 200px; float: left;"></div>
<div class="second" style="width: 700px; float: left;">
<p>BlaBlaBla</p>
<div class="will_slide_down" style="display: none">Some hidden text</div>
</div>
</div>
The only way I can think of is to run a function when the slideDown
of the div.second
is complete, but this will mess up the layout. It should happen at the same time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
假设您的下滑将由某些事件触发,请尝试如下操作:
Assuming your slide down will be triggered by some event, try something like this:
您可以做的是在页面加载时将
.will_slide_down
定位在屏幕外的某个位置 - 不隐藏它 - 以测量其高度。然后您可以隐藏它,将其移回并使用高度(添加.second
... 的初始高度)来计算.first
的新高度并进行动画处理两者同时发生。What you could do, is position
.will_slide_down
somewhere off-screen - without hiding it - at page-load to measure its height. Then you can hide it, move it back and use the height (adding the initial height of.second
...) to calculate the new height of.first
and just animate the two at the same moment.我认为最好的方法是使用 .animate() 和 step 函数。步骤函数在动画的每个“步骤”处触发。像这样的事情应该可以解决问题:
I think the best way would be to use .animate() and the step function. The step function is fired at each 'step' of the animation. Something like this should do the trick: