2016-07-11 20 views
4

jQueryプラグインに問題があります。ページの最後の前に特定の方法でフッターを表示したいと思います。このために、私は実際のボトムポジションを取得し、それを全身の高さと比較します。jQueryでドキュメントの実際の高さを取得する

しかし、jQuery関数のheight()が不正な値を返すという問題があります。たとえば、サイトの高さは5515pxですが、関数は値を返します:8142px

私はページのいくつかの場所でプラグインmCustomScrollbarを使用していますが、問題が発生する可能性があります。私はそれを無効にすることはできません。ページには見栄えが必要な要素があるためです。

マイコード:トミー・リオーダンに答える

(function($){ 
    $.fn.scrollingElements = function(){ 
     var height = $(window).height(); 
     var max_height = $(document).height(); 
     var prev_top = $(window).scrollTop(); 
     var prev_bottom = top + height; 
     $(window).scroll(function(){ 
      var top = $(window).scrollTop(); 
      var bottom = top + height; 

      console.log(max_height, bottom); 

      if(prev_top < height && top > height){ 
       // console.log('show header', 'show sticky', 'show footer small'); 
      } 
      if(prev_top > height && top < height){ 
       // console.log('hide header', 'hide sticky', 'hide footer'); 
      } 
      if(prev_top < 2*height && top > 2*height){ 
       // console.log('show sroll top'); 
      } 
      if(prev_top > 2*height && top < 2*height){ 
       // console.log('hide scroll top'); 
      } 

      if(prev_bottom < max_height - 100 && bottom > max_height - 100){ 
       // console.log('show footer large'); 
      } 
      if(prev_bottom > max_height - 100 && bottom < max_height - 100){ 
       // console.log('show footer small'); 
      } 

      prev_top = top; 
      prev_bottom = bottom; 

     }); 
     $(window).resize(function(){ 
      height = $(window).height(); 
     }); 
    } 
})(jQuery); 

: 変更$(文書).height()document.body.clientHeightにはまだなって悪い結果を動作しませんでした。同じ効果を持つ$( 'body')。height()を使って試しました。

+6

なぜ、 'position:fixed; CSSの下部:0'これを行うには? –

+0

手動で得られた高さを差し引いた... –

+0

ロリー、いいえ、できません。ボジェンドラはどういう意味ですか?ページには動的な高さがあります。手動でそこに置くことはできません。 – Manveru

答えて

0

使用してください

文書

代わりに窓例えば

$(ウィンドウ).resize(関数(){ 高さ= $(ドキュメント).height(); });

関連する問題