我可以使用jQuery独立地为属性设置动画吗?

时间:2011-12-02 19:45:58

标签: jquery

我想独立地动画元素的大小和位置,以便能够使用jQuery的stop()函数来清除一个属性的队列而不是另一个属性的队列。我只是动画widthleft属性。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

您需要使用jquery 1.7,但这可以完成。

http://jsfiddle.net/jRawX/16/

从1.7开始,您可以传递一个字符串作为queue参数。这会将动画排队到命名队列而不是fx队列。然后,当您调用stop时,您可以传递相同的队列名称。



$(function() {

    $("#stopTop").click(function() {
        $("#t1").stop("topQueue", true);
    });

    $("#stopLeft").click(function() {
        $("#t1").stop("leftQueue", true);
    });

    $('#t1').animate({
        left: 100
    }, {
        duration: 10000,
        queue: "leftQueue"
    }).animate({
        left: 600
    }, {
        duration: 10000,
        queue: "leftQueue"
    }).animate({
        top: 100
    }, {
        duration: 10000,
        queue: "topQueue"
    }).animate({
        top: 600
    }, {
        duration: 10000,
        queue: "topQueue"
    }).dequeue("topQueue").dequeue("leftQueue");
})

    .tester {
        background:red;
        width: 100px;
        height: 100px;
        left: 400px;
        top: 300px;
        position: absolute;
    }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="tester" id="t1"></div>

<button id="stopTop">Stop Top</button>
<button id="stopLeft">Stop Left</button>
&#13;
&#13;
&#13;