2012-10-01 9 views
5

私は左のナビゲーションバーを隠したいと思うページに取り組んでいます。私はSafariだけで問題を抱えていますが、Chrome、FF、Opera、IE7 +には問題はありません。JQueryアニメーションはSafariでのみジャンプする

Safariでスライドアニメーションが完了すると、コンテンツが一時的に元の位置にジャンプして消えてしまいます。私はずっとずっと勉強してきました。ほとんどの場合、パディングやマージンのようですが、ゼロに設定されています.2回のCSSリセットを試みました。それは私にはフロートと何か関係があるようです。私はクリアで遊んだが運がなかった。

Here is a demo

し、関連するアニメーション:

$('#btnHide').click(function() { 
    $("#divNavContent").animate({ 
     width: 'toggle' 
    }, 1000, function() { 
     $("#divNavHidden").animate({ 
      width: 'toggle' 
     }, 500); 
    }); 

}); 

$('#btnShowMenu').click(function() { 
    $("#divNavHidden").animate({ 
     width: 'toggle' 
    }, 500, function() { 
     $("#divNavContent").animate({ 
      width: 'toggle' 
     }, 1000); 
    }); 
}); 
+0

アニメーションのイージングプロパティを 'linear''に変更しようとしました – ahren

+0

アニメーション中に幅のみが設定されているように見えますが、表示がnoneに設定され、widthプロパティが削除されて元のCSSが引き継ぎ、たぶん静的な数字を使用するのではなく、「トグル」がうまくいくでしょうか? – Trey

答えて

1

問題は#divLeftであるためfloat: left;のために発生します。しかし、あなたは#divLeftからフロートを削除し、同じ構造を維持することができます。

margin-left: 4px;~#contentも追加します。これは、浮動小数点数を削除すると2つのdivが少しずつ大きくなるためです。

Safariのバグが多く、あなたのせいではないようです。

+0

ありがとうございました!それはうまくいった。 – user1712697