2011-09-08 36 views
5

hi là có ai có thể chỉ cho tôi ho để tái tạo hiệu ứng css3 này với jquery sử dụng một số chậm trễ/tốc độ hoạt hình?Sao chép chuyển đổi css3 với jquery

.element:hover{ 
-moz-transform: scale(1.3) rotate(0deg) translate(0px, 0px) skew(0deg, 0deg); 
-webkit-transform: scale(1.3) rotate(0deg) translate(0px, 0px) skew(0deg, 0deg); 
-o-transform: scale(1.3) rotate(0deg) translate(0px, 0px) skew(0deg, 0deg); 
-ms-transform: scale(1.3) rotate(0deg) translate(0px, 0px) skew(0deg, 0deg); 
transform: scale(1.3) rotate(0deg) translate(0px, 0px) skew(0deg, 0deg); 
z-index:9999; 

} 

JSFIDDLE

+4

không phải là điều này chỉ mở rộng quy mô chiều rộng và chiều cao của phần tử? –

+0

http://jsfiddle.net/2xWXY/ – sbaaaang

Trả lời

1

Đây là một cái gì đó PRETTY gần với những gì bạn đang yêu cầu. Tôi chắc chắn bạn có thể tinh chỉnh nó theo ý thích của bạn

$('.element').hover(function(){ 

    $(this).css('position','relative').animate({ 
     height: $(this).height()*1.3, 
     width: $(this).width()*1.3, 
     left: '-=' + $(this).width() /4, 
     top: '-=' + $(this).height() /4, 
     'fontSize': $('.element').css('fontSize').substring(0,$('.element').css('fontSize').length -2) * 1.3 + 'px' 
    },'fast'); 
}, 
function() {     
     $(this).css('position','relative').animate({ 
     height: $(this).height()/1.3, 
     width: $(this).width()/1.3, 
     left: 0, 
     top: 0, 
     'fontSize': $('.element').css('fontSize').substring(0,$('.element').css('fontSize').length -2)/1.3 + 'px' 
    },'fast'); 
}    

); 

http://jsfiddle.net/dTkhM/2/

+0

uhmmm ... thử đi qua nhiều thời gian đệ quy di chuột qua và ra: P – sbaaaang

+2

Tôi đã nói nó không hoàn hảo phải không? Vấn đề là khi bạn thay đổi chiều rộng và chiều cao của div, nó quy mô từ góc trên bên trái, và không phải là giữa giống như với biến đổi css3. Để khắc phục điều này, tôi đã phải thay đổi các thuộc tính TOP và LEFT, nhưng tôi không biết giá trị chính xác của chúng là gì. Vấn đề khác là tôi không chắc chắn CSS nào có giá trị thập phân, chẳng hạn như cỡ chữ: 13.313452px chẳng hạn. –

+0

yep nó không phải là tấn công giai điệu của tôi;) nó chỉ là để nói rằng mã của bạn là khá hoàn hảo nhưng tôi không thể chấp nhận câu trả lời ở tất cả nguyên nhân của lỗi nhỏ đó;) – sbaaaang

2

Đây là cách tôi có thể đi về thực hiện một vòng quay đơn giản (không dùng tốc độ khung hình vào tài khoản):

$(function(){ 
    (function(n){ 
     this.interval = n; 
     this.transform = { 
      'rotation': 0 
     }; 

     this.start = function(){ 
      setInterval(this.update, this.interval); 
     }; 

     this.update = function(){ 
      this.transform['rotation'] = (this.transform.rotation + 10) % 360; 
      $('div').css('transform', 'rotate(' + this.transform.rotation + 'deg)'); 
     }; 
     return this; 
    })(30).start(); 
}); 

http://jsfiddle.net/dbrecht/82aUL/1/

này cho thấy một hình ảnh động đơn giản. Bạn sẽ có thể tìm ra cách để phần còn lại của nó lại với nhau.

+0

ehm ..: P ... không biết nhưng đối với tôi mã đó không hoạt động trên jsfiddle: ( – sbaaaang

+1

Đó là chrome chỉ atm –

+0

yep: p brian câu trả lời là dứt khoát ;) – sbaaaang

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