我想独立地动画元素的大小和位置,以便能够使用jQuery的stop()
函数来清除一个属性的队列而不是另一个属性的队列。我只是动画width
和left
属性。
有没有办法实现这个目标?
答案 0 :(得分:3)
您需要使用jquery 1.7,但这可以完成。
从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;