2011-01-06 10 views
1

2つのメニューでマッシブルエフェクトを複製しようとしています。私はスクロール効果を働かせましたが、私はフッターの一番上で停止する効果を探していました。私は限界を持って条件付きの声明を出すことができると思っていましたが、私はそれをどうやって解くのかは分かりませんでした。jQueryフローティングディベロッパー下限付き

ここに私が使用しているJavaScriptがあります。

var name = ".floater"; 
var menuYloc = null; 

jQuery(document).ready(function($) { 
    menuYloc = parseInt(jQuery(name).css("top").substring(0,jQuery(name).css("top").indexOf("px"))) 
    jQuery(window).scroll(function() { 
     offset = menuYloc+jQuery(document).scrollTop()+"px"; 
     jQuery(name).animate({top:offset},{duration:500,queue:false}); 
    }); 
}); 

ここにビルドサイトへのリンクがあります。 http://host.philmadelphia2.com/~chill/about/

ありがとうございます。

答えて

3

jqueryの.offsetを使用して、ページ内のフッター位置の位置を確認し、メニューのトップ位置+高さを使用して、フッタ位置またはその付近にあるかどうかを判断し、停止する場合は停止します。

#Footerと$ MenuはそれぞれフッターのIDであり、メニューは明らかにそれらが何であるかに変わります。

EDIT:前の例では、この1つは

jQuery(document).ready(function($) 
{ 
    menuYloc = parseInt(jQuery(name).css("top").substring(0,jQuery(name).css("top").indexOf("px"))) 
    jQuery(window).scroll(function() { 
     var contentHeight = jQuery("#content").height(); 
     var menuHeight = jQuery(".floater").height(); 

     offset = menuYloc+jQuery(document).scrollTop(); 
     if((offset+menuHeight) > (contentHeight - menuHeight)) 
      offset = (contentHeight - menuHeight);    

     jQuery(name).animate({top:offset+"px"},{duration:500,queue:false}); 
    }); 
}); 
+1

はあなたのためのおかげで助けて、あなたがあなたの代わりにメニューの上部オフセットを使用する必要があります素晴らしい –

+0

だ、完璧に働いていたはずです小さな窓の高さで正しく動作のdidnt CSSのトップ値。私はちょうどあなたのページをテストし、ブラウザウィンドウの高さが足りない場合、メニューはフッタを過ぎています。 –

+0

この例を編集して、小さなウインドウの高さでウルサイトでテストし、うまく動作します。 –

関連する問題