jQuery DIV高度问题

jQuery DIV高度问题,jquery,internet-explorer,height,jquery-animate,Jquery,Internet Explorer,Height,Jquery Animate,你好:) 我在固定大小的div上对不透明度和高度使用jQuery的animate()。 它在firefox中运行良好,但在IE8中(有和没有兼容模式,所以我假设它在IE6和IE7中具有相同的行为),动画确实会显示,但当div高度达到0%时,div的高度会调整到该div内文本的高度。 我立即做的第一件事是将overflow设置为hidden,但它仍然提供相同的行为 我正在使用以下函数缓慢切换高度/不透明度: function OpacityFadeToggle(e_trigger, e_eleme

你好:)

我在固定大小的div上对不透明度和高度使用jQuery的animate()。
它在firefox中运行良好,但在IE8中(有和没有兼容模式,所以我假设它在IE6和IE7中具有相同的行为),动画确实会显示,但当div高度达到0%时,div的高度会调整到该div内文本的高度。
我立即做的第一件事是将overflow设置为hidden,但它仍然提供相同的行为

我正在使用以下函数缓慢切换高度/不透明度:

function OpacityFadeToggle(e_trigger, e_element, speed)
{
    $(e_trigger).toggle(
        function() {
            $(e_element).animate({ 
                opacity:    0.0,
                height:     "0px"
            }, speed);
        },
        function() {
            $(e_element).animate({
                opacity:    1.0,
                height:     "500px"
            }, speed);
        }
    );
}

$(function() {
    OpacityFadeToggle("a#a2", "div#b1", 1000);
});
我的“b1”分区的样式如下:

div#b1 {
    color:      #ffffff;
    background-color:   #000000;
    overflow:       hidden;
    width:      600px;
    height:     500px;
    padding:        0px;
    margin:     0px;
    display:        block;
}
如果你想看一个真实的例子,我在这里临时设置了一个页面:


非常感谢您在这方面提供的任何帮助。

您可以尝试向jQuery的animate调用添加回调,并在回调中通过更改div的display属性来隐藏div。

您可以尝试向jQuery的animate调用添加回调,在回调函数中,通过更改div的display属性来隐藏div。

将其动画设置为1px,然后在动画完成后隐藏div怎么样?另外,确保在从1px设置动画到500px之前再次显示div

function OpacityFadeToggle(e_trigger, e_element, speed)
{
    $(e_trigger).toggle(
        function() {
                $(e_element).animate({ 
                        opacity:        0.0,
                        height:         "1px"
                }, speed).hide();
        },
        function() {
                $(e_element).show().animate({
                        opacity:        1.0,
                        height:         "500px"
                }, speed);
        }
    );
}

将其动画设置为1px,然后在动画完成后隐藏div怎么样?另外,确保在从1px设置动画到500px之前再次显示div

function OpacityFadeToggle(e_trigger, e_element, speed)
{
    $(e_trigger).toggle(
        function() {
                $(e_element).animate({ 
                        opacity:        0.0,
                        height:         "1px"
                }, speed).hide();
        },
        function() {
                $(e_element).show().animate({
                        opacity:        1.0,
                        height:         "500px"
                }, speed);
        }
    );
}

这将导致文本“嗨!”正在向下闪烁到它通常会停留的位置,然后返回到链接旁边。这会导致文本“嗨!”正在向下闪烁到它通常会停留的位置,然后返回到链接旁边。仍然有一点点闪烁,但不是太糟糕。确实仍然有一点点闪烁,但这应该可以。谢谢:)还是有点闪烁,但不是太糟糕。确实还是有点闪烁,但这应该可以。谢谢:)