2

3つのdivの高さを取得し、それらを合計して、スクロール位置がその数よりも大きいかどうかを確認する必要があります。現在、1つの要素の高さを取得できますが、他の要素を追加するにはどうすればよいですか?

基本的には、「scroll_topがdiv 1 + div 2+3の高さより大きい場合」と書きたいと思います。

var scroll_top = $(window).scrollTop();

if ((scroll_top > $('.nav-bar-fixed').height()) {
    alert('sometext');
}
4

4 に答える 4

14

なぜこれだけではないのですか?

var h = 0;
$('#div1, #div2, #div3').each(function(){ h+=$(this).height() });
于 2013-02-08T22:08:26.773 に答える
4

これでうまくいくはずです。

JS Bin での作業例

HTML:

  <div class="nav-bar-fixed"></div>
  <div class="nav-bar-fixed"></div>
  <div class="nav-bar-fixed"></div>

CSS:

.nav-bar-fixed {
  height: 200px;
}

JavaScript:

var scroll_top = $(window).scrollTop(),
    $navBarFixed = $('.nav-bar-fixed'),
    totalHeight = 0;

$.each($navBarFixed, function() {
    totalHeight += $(this).height();
});

if (scroll_top > totalHeight) {
    alert(totalHeight);
}
于 2013-02-08T22:16:54.727 に答える
2

これを試して:

$(document).ready(function() {
var limit =$('.myEle1').height() + $('.myEle2').height() + $('.myEle3').height();
   $(window).scroll(function() {
       var scrollVal = $(this).scrollTop();
        if ( scrollVal > limit ) {
           //do something.
        }
    });
 });​

これが固定ナビゲーションサンプルソースです。

于 2013-02-08T22:09:14.290 に答える