jQuery:如何通过将高度添加到元素顶部来设置更高的高度?

我有一个简单的问题,但我不知道如何解决它。

基本上我有一些隐藏的内容,一旦扩展,需要99px的高度。 折叠时,持有它的section#newsletter #newletter将高度设置为65px。

现场示例: http : //dev.supply.net.nz/asap-finance-static/

点击a#signup_formsection#newsletter将使用以下jQuery扩展为99px:

 $('#newsletter_form').hide(); // hide the initial form fields $('#form_signup').click(function(event) { event.preventDefault(); // stop click // animate $('section#newsletter').animate({height: 99}, 400, function() { $('#newsletter_form').show(300); }) }); 

所有这一切都很有效,除了这个元素位于粘性页脚中,因此它的初始高度用于定位它。

动画此元素的高度会导致浏览器上的滚动条,因为添加的34px会添加到元素的底部,所以我的问题是:

如何将这些34px添​​加到元素的顶部,以便高度向上扩展到身体而不是向下?

感谢您的阅读,我期待着您的帮助和建议。

Jannis

只是将完整的解决方案发布到我的具体问题,以防这可能有助于其他人,这里是代码:

JS:

 $('your_trigger').click(function(event) { // click on the button to trigger animation event.preventDefault(); // stop click // animate function resizer () { // run inside a function to execute all animations at the same time $('your_container').animate({marginTop: 0, height:99}, 400, function() { $('#newsletter_form').show(300); // this is just my content fading in }); // this is the footer container (inside is your_container) // & div.push (sticky footer component) $('footer,.push').animate({marginTop:0}, 400); }; resizer(); // run }); 

CSS 🙁 这是我正在使用的粘性页脚 )

 /* ================= */ /* = STICKY FOOTER = */ /* ================= */ html, body { height: 100%; } #wrap { min-height: 100%; height: auto !important; height: 100%; margin: 0 auto -135px; /* -full expanded height of the footer */ position: relative; } footer, .push { height: 101px; /* height of this is equal to the collapsed elements height */ clear: both; } section#newsletter,footer { margin-top: 34px; /* this is the difference between the expanded and the collapsed height */ } 

所以基本上我通常使用TOTAL的全高(在动画高度之后)来定位我的footer ,然后我通过margin-top按下初始内容以补偿your_container折叠时较低的高度值。

然后在动画上调整your_container的高度,并删除your_containerfooter.push上的margin-top。

希望这可以帮助别人偶然发现这一点。

J.

你可以这样做:

 $('.box').animate({ height: '+=10px' });