所以我有:
<ul>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
<a href="#">Click</a>
我想得到并将<ul>
的高度添加到自身,所以我这样做:
var height = $("ul").height();
$("ul").css("height",height);
但是当单击<a>
标记时,列表会更改为包含更多,更少或相同数量的列表项,因此为了添加CSS高度转换,我希望它能够更改<ul>
的高度发生变化时的CSS高度值。我该怎么做呢?当我尝试添加点击它使用旧的高度值,或者我必须重置高度值,然后重新添加似乎不允许我的CSS过渡。
更新
感谢您的帮助。我有点放弃它,因为无论物品的数量多少,客户都对固定的高度感到满意。我也知道我可能没有解释我的问题。我下次会做得更好:)
答案 0 :(得分:0)
您可以使用切换高度:
$('ul').toggle('height')
答案 1 :(得分:0)
您只需将此css规则添加到ul
即可transition:height 0.5s;
将0.5s更改为您需要的过渡时间
答案 2 :(得分:0)
我不知道你为什么要这样做。无论如何,每次添加新的ul
元素时,您必须重置li
高度,如果您不这样做ul
保持旧值。
<强> JS 强>
$("a").on("click",
function(){
$("ul").css("height","");/*Resets height of ul*/
$("ul").append("<li>Item</li>");/*Append a new li element*/
var height = $("ul").height();/*find ul height*/
$("ul").css("height",height);/*Apply new height to ul*/
});
我建议您只需将li
元素附加到ul
:
$("a").on("click",
function(){
$("ul").append("<li>Item</li>");
});