Javascript 在jquery中将高度更改或设置动画为css默认值

Javascript 在jquery中将高度更改或设置动画为css默认值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个响应网站,标题栏的高度设置不同。 在我的javascript中,我将此值更改为固定大小: $('#header').animate({marginTop: 0, height:80}); 但在我的代码的另一点上,我希望它恢复到原始状态。 如何将其动画设置回默认行为? 换句话说,设置移除内联css的动画 我试过了 $('#header').animate({marginTop: 20, height:'inherit'}); 但这不起作用 最初的css是这样的: #header { m

我有一个响应网站,标题栏的高度设置不同。 在我的javascript中,我将此值更改为固定大小:

$('#header').animate({marginTop: 0, height:80});
但在我的代码的另一点上,我希望它恢复到原始状态。 如何将其动画设置回默认行为? 换句话说,设置移除内联css的动画

我试过了

$('#header').animate({marginTop: 20, height:'inherit'});
但这不起作用

最初的css是这样的:

#header { margin-top:20px; width:100%; height: 80px; background-color: #000; }
@media only screen and (min-width: 768px) and (max-width: 960px) 
{   
#header{height:100px;}
}
@media only screen and (max-width: 767px) 
{
#header{height:auto; padding-bottom: 1px;}
}
失败的解决方案1:

存储高度值: 这是无法做到的,因为许多用户在存储值和恢复存储值之间调整窗口大小

失败的解决方案2:
将动画设置为“nothing”(仅为空字符串)失败,Jquery将其解释为0,并将高度设置为零像素。

您可以这样使用:

var original = $('#header').css('height');//gets original height

$('#header').animate({marginTop: 0, height:80});
jQuery(document).ready(function($) {
    $(".item").mouseleave(function(){
        $(this).find('.info').stop().css('marginTop', '0');
    }).mouseenter(function(){
        $(this).find('.info').animate({ marginTop: '-50px', opacity: 0.5 }, 1000);
    });
});
然后使用以下命令:

$('#header').animate({marginTop: 0, height:original});

考虑到你有下面这样的HTML

<div class="item">
    <div class="block"></div>
    <div class="info">
           My info
    </div>
</div>

您必须将原始值存储在某个位置。我推荐这个-

$('#header').data('height', $(this).height()).animate({marginTop: 0, height:80});
然后,当您准备恢复时-

var oldHeight = $('#header').data('height');
$('#header').animate({marginTop: 20, height: oldHeight });
编辑-

这个div还有其他内联样式吗


如果没有,您只需使用removeAttr并删除style属性。

尝试不使用height值,或者只保留空值height:“

用于此$'header'。动画{marginTop:0,height:80px}@op:请检查我的更新答案。谢谢,但这不能在这里应用,我在我的原始问题中添加了原因。还有什么要更改。css上的动画?这确实有效,但如果没有动画,我现在将其用作后备方案