2011-09-08 17 views
5

こんにちは、誰かがjQueryを使ってこのcss3エフェクトをいくつかの遅延/アニメーションのスピードで再現することができますか?jqueryでcss3変換を再現

.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

これはただのスケーリング要素の幅と高さではないでしょうか? –

+0

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

答えて

1

ここには、あなたが求めているものに近い素晴らしいものがあります。私はあなたがあなたの好みに合わせて、それを微調整することができ確信している

$('.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 ...再帰的に多くの時間を渡してみてください:P – sbaaaang

+2

私は完璧ではないと言っていましたか?問題は、divの幅と高さを変更したときに、左上隅から拡大され、css3変換のように中間ではなくなります。これを修正するために、私はTOPとLEFTのプロパティを変更することを混乱させなければなりませんでしたが、それらの正しい値がどうあるべきかわかりません。もう1つの問題は、font-size:13.313452pxなど、CSSが小数点以下の値をどのように扱うかわからないことです。 –

+0

あなたのコードはかなり完璧だと言っていましたが、その小さなバグの原因で回答を受け入れることはできません;) – sbaaaang

2

ここで私は(アカウントにフレームレートを服用していない)単純な回転を実装については行くかもしれない方法は次のとおりです。

$(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/

これは単純なアニメーションを示しています。残りの部分を一緒にまとめる方法を理解できるはずです。

+0

ehm ..:P ... jsfiddleでコードが動作しないのはわかりませんが:( – sbaaaang

+1

これはクロムのみatm –

+0

yep:pブライアンの答えは確定です;) – sbaaaang

関連する問題