2015-04-15 58 views
5

Có thể bắt đầu hoạt ảnh .gif khi bạn di chuột qua nó và tạm dừng nó khi bạn không lơ lửng trên nó? Tôi không muốn đặt lại hình ảnh về đầu hoạt ảnh khi dừng di chuột qua nó.Có thể tạm dừng hình ảnh .gif không?

EDIT: Cảm ơn sự giúp đỡ, nhưng không có gì hoạt động như tôi muốn. giải pháp tốt nhất mà tôi tìm thấy cho điều này là thế này:

HTML:

<img id="gif1" src="static1.jpg"> 

JS:

$("#gif1").hover(
    function() { 
     $(this).attr("src", "animate1.gif"); 
    }, 
    function() { 
     $(this).attr("src", "static1.jpg"); 
    }       
); 

Vì vậy, chỉ cần thingy đặt lại.

+0

http://stackoverflow.com/questions/5818003/stop-a-gif-animation-onload-on-mouseover-start-the-activation –

+0

Bạn chắc chắn có thể làm điều đó bằng vải, cho tôi biết nếu bạn cần một ví dụ tốt hơn: http://stackoverflow.com/questions/3688460/stopping-gif-animation-programmatically – iMoses

+0

Ngoài ra, hãy xem thư viện này: http://slbkbs.org/jsgif/ – iMoses

Trả lời

5

Một giải pháp có thể là có hai hình ảnh tĩnh và một hình động. Sau đó, thay đổi src khi di chuột (như được mô tả ở đây: https://stackoverflow.com/a/5818049/1845408).

Có cũng plug-in sau đó bạn có thể sử dụng cho mục đích này: https://github.com/chrisantonellis/freezeframe

Tôi đoán đây plug-in áp dụng logic mô tả ở trên, chỉ độc đáo hơn.

Tuy nhiên, nếu bạn thực sự muốn tạm dừng hoạt ảnh, bạn có thể cần phải có tập hợp hình ảnh để tạo hoạt ảnh và di chuyển qua hình ảnh theo thứ tự được đặt trước khi di chuột qua và tạm dừng khi chuột ra ngoài và ghi lại hình ảnh cuối cùng bị tạm dừng. Điều này đã được thực hiện ở đây: https://stackoverflow.com/a/20644622/1845408Click for DEMO

+7

Điều này sẽ không mô phỏng hiệu ứng tạm dừng vì nó sẽ không dừng ở cùng vị trí cộng với sẽ không tiếp tục từ vị trí tương tự khi phát lại. – Yani

+0

Việc có nhiều hình ảnh rất xấu cho hiệu suất. Ít nhất bạn có thể làm là tạo ra một hình ảnh sprite của hình ảnh động và một số loại mã để đi qua các khung hình. – iMoses

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