フロント ナビゲーションでページ全体のコンテンツを左、右、および下にスライドさせるサイトを設計しています。これは、IE7 以外のすべてで正しく機能します。最も奇妙な点は、3 つのアニメーションの 1 つが (最新のブラウザーのように) 完全に機能することですが、何らかの理由で他の 2 つの機能が機能しないことです。
機能する機能は次のとおりです。
jQuery('#block-block-16 p').live('click',function(){ FadeHeaderFooter();
var $structure = jQuery('#structure');
var $colorBlock = jQuery('#news-color-block');
var colorHeight = parseInt($colorBlock.css('margin-top'));
var w = jQuery(window).width(); //major difference
var slideHeight = FindSweetSpot('#news-color-block');
$structure.animate({ marginLeft: (w+2000) + "px" }, //math is different
1500, function(){
$colorBlock.animate({ marginTop: (colorHeight - slideHeight) + "px" },
1000, function(){
window.open (fakeurl.com','_self',false);
});
});
});
ないものは次のとおりです。
jQuery('#block-block-18 p').live('click',function(){ FadeHeaderFooter();
var $structure = jQuery('#structure');
var $colorBlock = jQuery('#about-color-block');
var colorHeight = parseInt($colorBlock.css('margin-top'));
var w = jQuery("#main-content").width();
var slideHeight = FindSweetSpot('#about-color-block');
$structure.animate({ marginLeft: ((w/2)*-1) + "px" }, //
1500, function(){
$colorBlock.animate({ marginTop: (colorHeight - slideHeight) + "px" },
1000, function(){
window.open ('fakeurl.com','_self',false);
});
});
});
どちらもほぼ同じです。変数 w が別の要素で宣言されていることがわかりますが、それは問題ではないようです (そして、他のすべてのブラウザーで動作します)。問題と思われるのは、新しい marginLeft がどうなるかを計算する場所です。
つまり、これは機能します: marginLeft: (w+2000) + "px"
これはそうではありません: marginLeft: ((w*.5)*-1) + "px"
1 つ目はページを右にスライドさせ、2 つ目はすべてを左にスライドさせようとしています。
IE7 で左にスライドするのに問題があるようです。これは-1を掛けたものかもしれないと思ったので、これを試しました:
var dist = (w*.5); var スライド = 距離 - 距離 - 距離;
役立たず。どんな助けでも大歓迎です、ありがとう!