我有一个按钮和一个div里面一些文本:
<h2>Click me</h2> <div class="expand">Lot of text here....</div>
我想显示只有2行的文本是默认的,所以我把高度30px和溢出隐藏。
当我点击H2元素,我想动画文本slideDown,如果我单击另一个时间,它将slideUp到默认高度(30像素)。
我正在尝试许多事情与jQuery,但它不工作。
编辑:
我也有不止一个“扩展”和多个“H2”和文本是不同的div,所以高度没有修复…我想滑到“自动”高度或100%。
有人能帮我吗?
谢谢!
解决方法
在页面加载之前,您可以将瘦身之前的高度保存到30像素,例如:
$(".expand").each(function() { $.data(this,"realHeight",$(this).height()); }).css({ overflow: "hidden",height: "30px" });
然后在您的点击处理程序中:
$("h2").toggle(function() { var div = $(this).next(".expand") div.animate({ height: div.data("realHeight") },600); },function() { $(this).next(".expand").animate({ height: 30 },600); });
那么这样做是在溢出之前获得.height()
(在document.ready中运行它):将其设置为隐藏,并通过$.data()
存储,然后在点击处理程序(通过.toggle()
替换)中,我们使用该值(或30)每一个点击到.animate()
到。