【问题标题】:jquery hide heightjquery隐藏高度
【发布时间】:2012-07-26 21:38:22
【问题描述】:

为什么隐藏动画前后测试div的高度值是一样的?

$(document).ready(function() {        
    $("#test").hide("slow", function() {  
       alert($("#test").height());  
   });
});

<div id="test">
    test
    <br />
    test
    <br />
    test
</div>

【问题讨论】:

    标签: jquery height hide


    【解决方案1】:

    我不完全确定 hide() 动画是如何工作的,但如果它确实改变了元素的 stlye-size 以实现缩小效果,它可能会在动画完成后将其恢复为原始大小.

    jQuery真正隐藏事物的方式是通过设置隐藏元素的css样式之一(我认为它只是设置了 display: none;)。动画只是一些花哨的效果,不会真正永久地改变元素。

    【讨论】:

    • 动画是由在 hide() 之前调用效果库的回调提供的
    • 感谢anwser,我想我会在动画完成后手动将高度设置为0。
    • 你可以这样做 $("#test").hide("slow", function() { alert($("#test").height()); }).height(0 );
    【解决方案2】:

    Hide() 函数只隐藏 div,不修改高度。只添加一个 style="display: none;"到元素。

    【讨论】:

      【解决方案3】:

      你可以在回调中写style.height=' ';

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-05
        • 2011-08-07
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多