2012-02-25 45 views
6

Khi di chuột qua, tôi cần phải xoay phần tử ngược chiều kim đồng hồ 180˚ trong khoảng thời gian 150ms và sau đó trên chuột, tôi cần phải xoay phần tử ngược chiều kim đồng hồ trở lại 0˚ ban đầu trên 150 mili giây.Làm cách nào để xoay một phần tử đến 180 độ trên 150 mili giây khi di chuột?

Tôi đang mở để sử dụng CSS3, jQuery và JavaScript.

Tôi sử dụng Chrome, nhưng tôi cũng cần phải làm cho nó hoạt động cho Firefox và Safari. Không quá lo lắng về IE.

+0

Tại sao 150ms? Chỉ cần biết rằng khi làm việc với thời gian trình duyệt, bạn sẽ không bao giờ đạt được một dấu chính xác, nhưng bằng cách sử dụng 'setTimeout (functionCall(), 150)' sẽ là những gì bạn cần. – vol7ron

+0

Loại yếu tố nào? Chỉ hình ảnh? –

+0

Cũng CSS3 sẽ chỉ xảy ra nếu bạn muốn sử dụng * thử nghiệm * [biến đổi thuộc tính] (https://developer.mozilla.org/en/CSS/transform) và [thuộc tính chuyển tiếp] (https: //developer.mozilla. org/en/CSS/transition), đôi khi có thể hơi chậm trong Firefox (chỉ cần lưu ý). – animuson

Trả lời

12

Sử dụng CSS3 transform, transition và Javascript để thêm/xóa lớp học.

Demo: http://jsfiddle.net/ThinkingStiff/AEeWm/

HTML:

<div id="rotate">hover me</div> 

CSS:

#rotate { 
    border: 1px solid black; 
    height: 100px; 
    width: 100px; 
} 

.over { 
    transform: rotate(-180deg);    
    transition: transform 150ms ease; 
} 

.out { 
    transform: rotate(-360deg);    
    transition: transform 150ms ease; 
} 
​ 

Script:

var rotate = document.getElementById('rotate'); 

rotate.addEventListener('mouseover', function() { 

    this.className = 'over'; 

}, false); 

rotate.addEventListener('mouseout', function() { 

    var rotate = this; 

    rotate.className = 'out'; 
    window.setTimeout(function() { rotate.className = '' }, 150); 

}, false); 

​ 
+2

Đừng quên rằng một số trình duyệt vẫn có thể cần tiền tố trình duyệt (-o, -moz, -ms và -webkit) – qsheets

+0

Có vẻ tốt nhưng tôi cần nó để xoay cùng một hướng (ngược chiều kim đồng hồ) trên cả chuột và chuột . – chharvey

+0

@ TestSubject528491 Tôi đoán nó sẽ giúp ích nếu tôi đọc câu hỏi của bạn trước. Mã được cập nhật để xử lý việc này. Yêu cầu một số javascript ngay bây giờ. – ThinkingStiff

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