[英]jquery .animate() height to auto
我是jquery的新手。我必须将div动画到一定高度。然后再次单击,我需要将其动画到height自动。 我只有在以px为单位提供高度时才能设置动画。这是我的代码。any1可以建议如何在页面加载时查找div的高度。
$("#photobutton").click(function(){
var $text = $("#photobutton").text();
if($text == "hide photos")
{
$("#photocontainer").animate({height: '144px'}, 1000);
$("#photobutton").text("more photos");
}
else if($text == "more photos")
{
$("#photocontainer").animate({height: '100%'}, 1000);
$("#photobutton").text("hide photos");
}
});
在if条件下,我希望div折叠到height144px ..,在else条件下,我希望div拉伸到其全高以显示所有元素。
您将要使用像素而不是百分比。
$(window).height(); // returns height of browser viewport
$(document).height(); // returns height of HTML document
.height();
相关的,并使用.height();
设置它。
在第二个animate()
调用中,假设您希望该div填充其父级的高度,请使用:
$("#photocontainer").animate({height: $("#photocontainer").parent().height()+'px'}, 1000);
编辑
设置动画高度以填充父母身高的示例: http : //jsfiddle.net/techfoobar/HXjfe/
对高度进行动画处理以填充窗口高度的示例: http : //jsfiddle.net/techfoobar/C37rs/1/
编辑#2
动画到自动高度: http : //jsfiddle.net/techfoobar/psexn/3/
jQuery的动画功能本身不会动画为自动高度。 实际上,它不会将动画设置为动画之前无法确定的任何高度。
但是,我们可以做到这一点。 但这涉及一个相当丑陋的hack。 技巧是隐藏div,将height设置为auto,记下高度,还原高度和可见性。 确定目标高度后,对其进行动画处理。
jQuery的animate
方法可以很好地与百分比和像素一起使用。
这是一个示例: http : //jsfiddle.net/KH8Gf/11/
这使我相信问题是您没有正确地为div photocontainer
定义父级。 当用百分比表示高度时,表示父级的x%。 如果未定义父级,则它将无法使用百分比。
如果可能,发布您的HTML标记和CSS。
UPDATE
在为光电容器的扩展动画时,必须指定其应扩展到的高度。 为此,您需要知道所需的高度,以百分比或像素为单位。
如果您希望照片photocontainer
能够保存可变数量的数据,则需要更改策略。 将photocontainer
定义为具有高度auto
,然后单击“扩展”,然后在photocontainer
添加新元素。 Photocontainer
将自动扩展到适当的尺寸。
参见示例: http : //jsfiddle.net/KH8Gf/21/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.