Tạo hiệu ứng Div sau khi hoạt ảnh Div trước đó đã hoàn thành bằng cách sử dụng deferred object
. Phương pháp đơn giản này hoạt động với hai hàm f1
và f2
, tuy nhiên khi tôi giới thiệu f3
thì không thành công.Một hình động Div sau một hình ảnh khác sử dụng đối tượng hoãn lại
Có cách nào tốt hơn để tôi có thể đạt được điều này bằng cách sử dụng đối tượng trì hoãn không?
JSFiddle: https://jsfiddle.net/j0bgzjvd/
var deferred = $.Deferred();
function animationAgent(element, prevElement) {
$(prevElement).promise().done(function() {
return $(element).css("display", "block").animate({width:360},2000, "linear")
});
}
function f1() {
animationAgent("#div1");
}
function f2() {
animationAgent("#div2", "#div1");
}
function f3() {
animationAgent("#div3", "#div2");
}
deferred.resolve();
deferred.done([ f1, f2, f3 ]);
div {
width: 200px;
height: 200px;
background-color: red;
margin-bottom: 10px;
display: none;
}
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
Bạn có thể thêm một đoạn hoặc bin với vấn đề này? Bất kỳ lỗi nào trong 'console'? –
Vui lòng xem JSFiddle được cập nhật trong bài đăng. Không có lỗi nào trong bảng điều khiển. Tôi muốn các div làm sống động một cái sau khi khác trong sự hài hòa, tuy nhiên như bạn có thể thấy chức năng 3 kết quả trong một xáo trộn trong chuỗi các hình ảnh động. Lấy ra f3 cho phép f1 và f2 hoạt động theo thứ tự - @MoshFeu – jcoulston2
Kiểm tra câu trả lời bên dưới có thể hữu ích. @ jcoulston2 –