2012-03-01 27 views
2

このプロジェクトのカスタムスライダを書きましたが、http://dl.dropbox.com/u/18292748/Sites/enblaze/index.htmlとIE8以外のどこでも正しく動作するようです。何が起こるかというと、ページが最初にロードされたときに、最初のスライドが正常に見えるが、その後であなたがそのような次のスライドのすべてのブレークに行くに変更する場合:jQuery IE8 cssが動作しないかatleastが正しく動作しない

IE8Fail

主にCSSを変更する2つの関数は、次のとおりです。

function showAnimation(slide) { 
    if(animating || visible) { 
     return; 
    } else { 
     animating = true; 
     //enter animation 
     // slide.wrapper.css({'visibility': 'visible'}); 
     // $('wrap_slides').addClass('ieFails'); 
      slide.bg.animate({'opacity':1}, speed, function() { 
       slide.sep.animate({'opacity':1}, speed+400); 
        slide.typo.animate({'opacity':1, top:0}, speed, function() { 
         slide.people.animate({'opacity':1}, speed, function() { 
          slide.preview.animate({'opacity':1},speed, function() { 
           animating = false; 
           visible = true; 
          }); 
         }); 
        }); 
      }); 
    } 
} 

function hideAnimation(slide, cb) { 
    if(animating || visible==false) { 
     return; 
    } else { 
     animating = true; 
     //exit animation 
     slide.preview.animate({'opacity':0},speedxit, function() { 
      slide.people.animate({'opacity':0},speedxit,function() { 
       slide.sep.animate({'opacity':0},speedxit, function() { 
        slide.typo.animate({'opacity':0, 'top': -220},speedxit, function() { 
         animating = false; 
         visible = false; 
         $('.wrap_slide').css({'z-index':8}); 
         slide.wrapper.css({'z-index':9}); 
         cb(); 
        }); 
       }); 
      }); 
     }); 
    } 
} 

これはかなりスライダーhttp://dl.dropbox.com/u/18292748/Sites/enblaze/assets/javascripts/lib/slider.js ないためのjsの完全なソースですが、それは、これまで働いていました。 私はie8の条件付きターゲットを作成しようとしましたが、addClass関数(最初のスライドがきれいに見えるので、アクティブ化されたスライドのみをターゲットにする)さえ動作しないようです。

私は無力感を感じます。

+1

IE8以下ではデザインしないことをお勧めしますか?それは時代遅れの "技術"です。私はこのコードを使用しています: '<! - [If IE 9]><?php include_once( 'include/outdated_browser.php'); ?> '。このようにして、ユーザーはブラウザを更新するよう強制されます:) – Steven

+0

@スティーブン - 私はそれをデザイナーに任せているとは思わない。 IE8はまだ2番目によく使われているブラウザではありませんか? – Niklas

+0

提案してくれてありがとう@Steven、しかしIE8の市場シェアはまだ10%を超えているので、それは余裕がない。 – zevstatiev

答えて

2

position:absoluteをIE8のみに設定してください。

.ie8 .slide_preview.monitor{ 
    position:absolute; 
    top:0 
} 

または、IE8でのみ動作するハックを選択してください。 http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8/

+0

問題はCSSにあるとあなたは実際には間違いありませんでした。本当にありがとう! – zevstatiev

1

私は間違いなくあなたの不透明度と関係があると推測します。IE8は代わりにフィルタを使用して '不透明度'をレンダリングできません:alpha(opacity = x);

+0

ありがとうございますが、不透明度はjQuery(css opacity :;プロパティではありません)で生成されているため、正しいものでなければなりません。 – zevstatiev

関連する問題