2012-02-18 7 views
0

は、私はこのサイト上のスライダーで効果をエミュレートしようとした:http://metalabdesign.com/jQueryのアニメーションはあまりうまく動作しません。どうすればそれをよりスムーズにすることができますか?

ここでアニメーションのコードです:

$('.tagLink').click(function() { 
      $('html').css('overflow', 'hidden'); 
      $('#tagBoxOverlay').show().stop(1).fadeTo(200, .9) 
      $('#tagBox').show().stop(1).animate({ 
       marginTop: '-37.5%', 
       marginLeft: '-37.5%', 
       height: '75%', 
       width: '75%', 
       opacity: 1 
      }, { 
       duration: 200, 
       specialEasing: { 
        opacity: 'linear', 
        width: 'linear', 
        height: 'linear', 
        marginLeft: 'linear', 
        marginTop: 'linear' 
       }, 
       complete: function() { 
        $(tagBoxContents).fadeTo(200, 1); 
        $('#tagBoxPopularWrapper').height($('#tagBox').height() - $('#tagBoxDescription').height() - 1); 
        $(window).resize(function() { 
         $('#tagBoxPopularWrapper').height($('#tagBox').height() - $('#tagBoxDescription').height() - 1) 
        }); 
       } 
      }); 

tagBoxOverflowとtagBoxは100%幅&高さを出し始めます。オーバーレイがフェードインし、ボックスがフェードインしたり縮小したりします。

ここにはライブが表示されるサイトがあります:http://hashtraffic.com/ 「ヒップスター」をクリックし、「ヒップスター」をクリックするとアニメーションが作成されます。

どうして遅いですか?私はここに迷ってしまいました

http://hashtraffic.com/js/HashTraffic.js

:ここではRAW JSへのリンクがあります。私はブラウザの多くを求めていることを理解していますが、metalabsはうまくいきます! js fallbackでCSSアニメーションを使用するとスムーズになりますか?

+0

http://jsfiddle.net/xJpFY/2/ – elclanrs

答えて

1

css3トランジションを使用するにはかなりスムーズです(ただし、IEではこれには報われません)。

しかし、大きな問題はマージンだと思います。

私はそれを絶対位置にします。右上の下と左にアニメートします。

あなたのやっていることでは、ブラウザはページ全体をリフローさせることになりますが、位置を絶対にすると、サイズを変更しても、要素またはその親に影響しません。

+1

IEの移行はありますか? http://msdn.microsoft.com/en-us/library/windows/apps/hh466377.aspx –

+0

上および左にアニメーションを適用すると、Wayyyyyが優れています。これらのマージンは本当に遅くなります。ありがとう!また、私はCSS3でそれを行う方法を探しています。 IE6と7では動作しませんので、より良いフォールバックを見つける必要があるかもしれません。助けてくれてありがとう! – alt

+0

私が知る限り、ie10はCSSトランジションをサポートする最初のものです。私は、彼らに互換性をもたせるためにie9へのアップデートを提供しているという噂を聞いたことがありますが、私はそれを実際には取っていません。 –

関連する問題