日期:2014-05-16  浏览次数:20399 次

有分析过jquery源码的同鞋帮下忙
关于animate方法,当我animate高度时,可以将高度的值设为hide或show.

function close()
{
a.animate({"height":"hide"}, 700, "easeOutExpo");
}

function open()
{
a.animate({"height":"show"}, 700, "easeOutExpo");
}

我想问,用字符串当值时,它是怎样工作的,它在hide之前把当前的高度保存起来了? 因为我发现如果animate height:0之后再调height:"show"是没有反应的,只能和hide成对时才会工作。

因为我现在的代码不能直接使用slideUp和slideDown,因为它在完成时把原element设为了display:none,(用hide或show作为值时也会自动设display:none),这会导致div内的flash重新加载, IE:没声音,firefox:正常,chrome:重新加载。
所以我需要知道用"show", "hide"作为值时,它记录了哪些值,我想模拟它,但最后时不设display。


------解决方案--------------------
第一次看见这种写法。
帮忙找了下stackoverflow,可以参考下面的文章。
http://stackoverflow.com/questions/1025074/jquery-animate-hide-and-show
------解决方案--------------------
自己记录下a的初始化高度就好了

 
JScript code
var a, height;
    $(function () {

        a = $("#test")
        height = a.height();
        alert(height)
    })
    function Close() {
        a.animate({ "height": "0" }, 700);
    }

    function Open() {
        a.animate({ "height": height }, 700);
    }