1

元素#open#close在动画期间消失,而他们不应该这样做。

这是代码,在此框下是 jsfiddle。

/* CSS */
#web { width:700px; height:600px; background:#ce5a3e}
#dreta { width:200px; height:600px; background:#000; float:right; position:relative }
#open { position:absolute; top:0; left:-50px; display:none; color:#fff; }
#close { position:absolute; top:0; left:-50px; color:#fff; }

<!-- HTML -->
<div id="web">  
    <div id="dreta">
        <a id="close" href="#">Close</a>
        <a id="open" href="#">Open</a>
    </div>
</div>
// JAVASCRIPT
$("#close").click(function() {   

    $("#dreta").animate({width: 0}, {duration: 1000,easing: "easeOutQuint",complete: function() {

        $("#close").fadeOut();
        $("#open").fadeIn();

    } });

});

$("#open").click(function() {

    $("#dreta").animate({width: '200px'}, {duration: 1000, easing: "easeOutQuint", complete: function() {

        $("#close").fadeIn();
        $("#open").fadeOut();

    }});

});

我已经在各种浏览器中对其进行了测试,它们都使它消失了。

为什么会发生这种情况,我该如何解决?

小提琴:http: //jsfiddle.net/aaQhF/1/

4

1 回答 1

5

问题是 jQuery 设置了默认样式overflow:hidden

你只需要添加

$("#dreta").animate().css("overflow","visible");

删除该默认行为。

http://jsfiddle.net/aaQhF/3/

于 2012-11-22T09:57:46.763 回答