2016-04-03 22 views
1

イメージをフェードインする基本シーケンスがあります。合計3つの画像があり、それらはfadeInです。私はこの同じ方法でこの同じページを持っていますし、それは動作します、なぜ私はInternet ExplorerとFirefoxでうまくいかないのか混乱しています。イメージfadeInはInternet ExplorerまたはFirefoxで動作しません

これは私のコードです:

//Home Img delay/fadein 
$(function() { 
    var oTop = $('#home-img-block-section').offset().top - window.innerHeight; 
    $(window).scroll(function() { 

    var pTop = $('body').scrollTop(); 
    console.log(pTop + ' - ' + oTop); 
    if (pTop > oTop) { 
     imgDelays(); 
    } 
    }); 
}); 


// For three image block resizing 

$('.home-img-block img').addClass(function() { 
    return (this.width/this.height > 1) ? 'wide' : 'tall'; 
}); 

function imgDelays() { 
    $('.fadeBlock1').delay(300).fadeIn(500); 
    $('.fadeBlock2').delay(600).fadeIn(500); 
    $('.fadeBlock3').delay(900).fadeIn(500); 
}; 
.home-img-block { 
    width: 33.33%; 
    float: left; 
    display: none; 
    overflow: hidden; 
    position: relative; 
} 
<div class="home-img-block fadeBlock1"></div> 

Fiddle Demo

なぜこれが言及したブラウザ内に表示されないのでしょうか?

+0

FFとIE11で完全に機能します。実際のコードをデモとして見ることはできますか?あなたがやっていることに何か間違っているかもしれません。 – Harry

+0

@ハリーここにいるのは:https://jsfiddle.net/caatkq57/。これは、FFやIEではなく、そこで動作します。 – Becky

+0

そのフィドルは、最新のFF(v45)とIE 11 @ Beckyで正常に動作します。あなたの画像にアクセスできないため、画像のURLを変更しました。あなたは右に表示されるためにスクロールする必要があることを認識していますか? – Harry

答えて

1

$('body').scrollTop()が使用されているスクロールハンドラ内に問題があるようです。それはFirefoxとIEでは常に0の値を返すようですが、Chromeでは正しい値を返します。このため、pTopoTopより大きくなることはなく、したがってifは常に偽であるため、関数はまったく呼び出されません。

Firefox、Chrome、IEの両方で値が返されるように、$(document).scrollTopまたは$(window).scrollTopに変更してみてください。

$(function() { 
    var oTop = $('#home-img-block-section').offset().top - window.innerHeight; 
    $(window).scroll(function() { 

    var pTop = $(window).scrollTop(); 
    console.log(pTop + ' - ' + oTop); 
    if (pTop > oTop) { 
     imgDelays(); 
    } 
    }); 
}); 
0

あなたはそれのMOZ特定のバージョンを追加する必要がありますので、すべてのブラウザで同じCSS設定を持っている、とあなたは共通の問題を発見し、FFでinline-block doesntの仕事はない:

display: -moz-inline-stack; 
    display: inline-block; 

を*は、それが上記する必要があります注意してくださいIE私の知る限りでは、回避策については「通常の」inline-block

は次のとおりです。ここで

display: inline-block; 
*zoom: 1; 
*display: inline; 

は、優れたブログのPOSですこれについてmozillaを作成してください:Blog Post

+0

私は何も表示していません。 'fadeIn'は自動的にブロック設定に入れませんか? – Becky

+0

フェードインではタグのデフォルト機能が変わっていませんが、これは私が知っている痛みです。ブログの投稿をチェックしてください....クロスブラウザのスタイリングはここで問題です – JordanHendrix

+0

私は 'display:inline-block'をどこにも持っていません。私は 'display:none;'を持っています。それがあなたの答えを混乱させる理由です。 – Becky

関連する問題