Javascript 在jquery中将高度更改或设置动画为css默认值
我有一个响应网站,标题栏的高度设置不同。 在我的javascript中,我将此值更改为固定大小: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
$('#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上的动画?这确实有效,但如果没有动画,我现在将其用作后备方案