2013-05-31 30 views
5

Có cách nào để phát hiện trong Javascript của tôi không nếu một phần tử hiện đang được làm động với chuyển tiếp CSS3?Kiểm tra xem quá trình chuyển đổi CSS3 có đang chạy

Một sự kiện "chuyển tiếp" (tương đương với sự kiện 'transistionend') cũng sẽ hoạt động, nhưng tôi không thể tìm thấy bất kỳ đề cập nào về nó trong đặc điểm kỹ thuật.

+1

http://stackoverflow.com/questions/2794148/css3-transition-events, http://stackoverflow.com/questions/ 7264899/detect-css-transitions-using-javascript-and-without-modernizr? – coma

+1

Điều này không giúp được gì nhiều, vì các câu trả lời trong liên kết đầu tiên tập trung vào "transistionend" và liên kết thứ hai chỉ thảo luận về tính năng phát hiện cho các transistions css3. :/ – johnny

+0

bạn có thấy câu trả lời của tôi hữu ích không? – coma

Trả lời

2

Vâng, vì chỉ có một sự kiện transitionend (http://www.w3.org/TR/css3-transitions/#transition-events) một cái gì đó xấu xí nói đến cái tâm của tôi:

http://jsfiddle.net/coma/psbBg/6/

JS

$(function() { 

    var div = $('div'); 
    var property = div.css('transition-property'); 
    var lastValue = div.css(property); 

    setInterval(function() { 

     if(lastValue !== div.css(property)) { 

      console.log('changed!'); 

     } 

     lastValue = div.css(property); 

    }, 10); 

}); 

Nó có thể được cải thiện thực hiện các sự kiện tùy chỉnh, chăm sóc nhận được thuộc tính chuyển tiếp chính xác (hoặc tài sản), và nhiều ý tưởng hơn, nhưng bạn có được hình ảnh đúng không?

Có lẽ bạn cần phải thực hiện con đường khác vào giải quyết vấn đề ban đầu của bạn ...

+2

Tôi nghĩ rằng bạn có nghĩa là để kiểm tra 'biến đổi' tài sản và không 'transistion', phải không? Nhưng tôi có ý tưởng. Nó có vẻ hơi thô bạo, nhưng đó có lẽ là cách duy nhất để đi. Cảm ơn! – johnny

+0

oh, cảm ơn vì đã chỉ ra nó, bây giờ tôi đang sử dụng thuộc tính chuyển tiếp: http://jsfiddle.net/coma/psbBg/6/ – coma

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