2012-04-24 30 views
6

Xem xét một div "dMyDiv"jquery animate nhưng sau đó trở lại bình thường

Tôi nhận thấy trong jquery Tôi có thể làm động vì vậy đây:

$("#dMyDiv").animate({ 
     backgroundColor: "#aa0000" 
    }, 1000); 

mang một màu đỏ như nền màu để div của tôi. Nhưng có cách nào để sau đó sau khi nói 10 giây quay trở lại nền trắng bình thường của div của tôi? Tôi thấy có một chức năng gọi lại nhưng Im không chắc chắn nếu nó có thể bắt đầu các hình ảnh động, và một khi các hình ảnh động được thực hiện để quay trở lại nền thường xuyên của tôi (trước khi hoạt hình). Tôi có nên làm điều này:

$("#dMyDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 1000, function() { 
      $(#dMyDiv").animate({ backgroundColor: "#fff" }, 1000); 
      }; 
); 

Có nghĩa là sau khi tạo hiệu ứng màu đỏ, chỉ hoạt động trở lại màu trắng?

Trả lời

0

tôi đã có thể làm điều đó với chàng trai này:

http://jsfiddle.net/aN7qz/

Đây là mã:

$("#myDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 
      1000, 
      function() { 
       $("#myDiv").animate({ backgroundColor: "#fff" }, 1000); 
      } 
        ); 
+0

Tôi nghĩ bạn muốn đợi 10 giây và sau đó hồi sinh? Nếu có, hãy kiểm tra câu trả lời của tôi để biết cách thực hiện điều đó. Nếu không và bạn muốn ngay lập tức gọi nó sau khi hoạt hình đầu tiên, bạn đã có nó! –

+0

@Scott - Tôi thực sự đang tìm cách chuyển từ hình động này sang hoạt ảnh khác, và nếu bạn nghĩ về nó, tôi có thể đặt giây thành animate để điều này nên làm. Tôi sẽ vẫn +1 bạn cho công việc chuyên môn khó khăn của bạn :). – oJM86o

+1

oJM86o: Câu trả lời của tôi là chính xác và vẫn là câu trả lời được chấp nhận trong một thời gian. Bây giờ bạn đã trả lời chính mình với ít chức năng hơn và xóa câu trả lời được chấp nhận để đặt câu trả lời của riêng bạn làm câu trả lời được chấp nhận. Do đó, danh tiếng của tôi bị hạ cấp xuống còn 15 điểm. ¬¬ – lu1s

7

Bạn nói đúng. tham số thứ ba là một hàm thực thi khi hoạt ảnh hoàn tất.

$("#dMyDiv").stop().animate({backgroundColor:'#aa0000'},1000,function(){ 
    $(this).animate({backgroundColor:'#fff'},1000); 
}); 
+0

gì là điểm dừng chân trong begi nning? – oJM86o

+0

Nếu bạn không dừng hoạt ảnh, và đang chạy vào thời điểm nó được kích hoạt một lần nữa, nó sẽ nhận được vào một loại hàng đợi, làm cho nó trông lạ. Ví dụ, bạn kích hoạt các hình ảnh động bằng cách nhấp vào một nút, bạn làm điều đó nhiều lần 10 lần. Nếu bạn không dừng nó sẽ chạy nhiều lần cho đến khi kết thúc. – lu1s

+0

Ok cảm ơn bạn tôi cũng sẽ thêm phần này. – oJM86o

3

Bạn có thể sử dụng setTimeout:

$("#dMyDiv").stop(true, true).animate({ 

    backgroundColor: "#aa0000" 

}, 1000, function() { 

    setTimeout(function() {  

     $(#dMyDiv").animate({ 

      backgroundColor: "#fff" 

     }, 1000); 

    }, 10 * 1000); 

}); 
+0

Điểm dừng trong đầu là gì? – oJM86o

+1

Nếu bạn không dừng hoạt ảnh, và đang chạy vào thời điểm nó được kích hoạt một lần nữa, nó sẽ nhận được vào một loại hàng đợi, làm cho nó trông lạ. Ví dụ, bạn kích hoạt các hình ảnh động bằng cách nhấp vào một nút, bạn làm điều đó nhiều lần 10 lần. Nếu bạn không dừng nó sẽ chạy nhiều lần cho đến khi kết thúc. – lu1s

+0

lu1s là chính xác và bạn muốn sử dụng ['.stop (true, true)'] (http://api.jquery.com/stop/) để chuyển tiếp mượt mà hơn. Xem tài liệu liên kết về lý do tại sao. –

Các vấn đề liên quan