2016-04-25 17 views
0

画面があるときに要素を消してから、新しい要素を表示しようとしています。 問題は、スクリーンがオフではなく、すべてのスクロールでも要素が消えてしまうことです。画面外のときに消える要素

は、ここに私のコードです:

$(window).scroll(function() { 
    scrollHide('#zabiegi'); 
}); 

function scrollHide(sectionId) { 
    if ($(window).width() < 968) { 
     $(sectionId).each(function() { 
      if (($(sectionId).find('.two').offset().top - $(window).scrollTop()) < 20) { 
       $(sectionId).find('.two').stop().fadeOut("slow", function() { 
        $(sectionId).find('.one').fadeIn(); 
        updateMargin(sectionId,'.one'); 
       }); 
      } 
     }); 
    } 
} 

私はまた違ったアプローチにこの時間をtryiedました - 何も起こりませんし、if文は常にfalseを与えます。

$(window).scroll(function() { 
    scrollHide('#zabiegi'); 
}); 

function scrollHide(sectionId) { 
    if ($(window).width() < 968) { 
     $(sectionId).each(function() { 

      var off = $(sectionId).find('.two').offset(); 
      var t = off.top; 
      var h = $(sectionId).find('.two').height(); 
      var docH = $(window).height(); 
      console.log(t > 0 && t + h < docH); 

      if (t > 0 && t + h < docH) { 
       $(sectionId).find('.two').stop().fadeOut("slow", function() { 
        $(sectionId).find('.one').fadeIn(); 
        updateMargin(sectionId,'.one'); 
       }); 
      } 
     }); 
    } 
} 

答えて

0

私は解決策を見つけました。この問題は、条件文の場合に発生します。ここで コードです:

function scrollHide(sectionId) { 
    if ($(window).width() < 968) { 
     $(sectionId).each(function() { 
      if (($(sectionId).find('.two').offset().top + $(sectionId).find('.two').outerHeight() - $(window).scrollTop()) < 0 ) { 
       $(sectionId).find('.two').stop().fadeOut("slow", function() { 
        $(sectionId).find('.one').fadeIn(); 
        updateMargin(sectionId,'.one'); 
       }); 
      } 
     }); 
    } 
}); 

しかし、まだ問題を持って...上記のスクリプトは、私は条件文に追加した...私はしませアップ スクロールダウンした場合にのみ動作します:

if (($(sectionId).find('.two').offset().top + $(sectionId).find('.two').outerHeight() - $(window).scrollTop()) < 0 || ($(sectionId).find('.two').offset().top - $(sectionId).find('.two').outerHeight() + $(window).scrollTop()) < 0) { 

console.logの出力はokです。要素の上にあるときに0を表示しますが、まだ動作していません。

関連する問題