2016-10-21 2 views
1

スクロール時に要素を固定する必要があります(たとえば、ページをスクロールすると、要素が自動的に表示されるように自動的に調整されます)。私が取り組まなければならない問題は、高さ値をハードコーディングせずにこれをどうするかということです。これを行う方法はありますか?ここで値をハードコードしないで要素をスクロールするjQuery

は、そのためのコードです:

// fix the orange box to the top after scrolling a certain amount 
$(window).scroll(function(e){ 
    var scrollTop = $(window).scrollTop(); 

    // enforce a max based on current content length 
    if ($(this).scrollTop() >= ($('.mainContent2ColLayout250').height() - 400)) 
     scrollTop = ($('.mainContent2ColLayout250').height() - 400); 

    if ($(this).scrollTop() >= 340) 
     $('.fixedElement').css({'marginTop': scrollTop - 325, 'marginBottom': -1 * (scrollTop - 325)}); 

    if ($(this).scrollTop() < 340) 
     $('.fixedElement').css({'marginTop': 0, 'marginBottom': 0}); 
}); 

任意の助けをいただければ幸いです。

ありがとうございます!

+3

position: fixed 

を適用しますか? – Mogzol

+0

@ user2101411要素をどのように正確に表示したいかは明確ではありません。 'position:fixed'は、文書内で通常どおりに要素を表示させますが、固定要素は残りの要素のレイアウトには影響しません。また、ページと共にスクロールしません。 'position:absolute'を使用して左上隅などの特定の場所に設定するなど、他のオプションもありますが、あなたの質問の説明から実際に何を望んでいるのか分かりません。 – Zack

+0

私は、位置を使用する非常にシンプルで簡単な方法を行う代わりに、このコードを使用することを余儀なくされています:jqueryクラスの追加/削除やスタイルの追加があります.. – user2101411

答えて

1

はあなただけfixed` `に要素の` position`を設定することはできません何らかの理由があるその要素

+0

javascriptを削除して位置を追加すると、スクロールを停止します。 – user2101411

+0

私はこのコードをjsfiddleで提供することができます – Dzhambazov

+0

私はこれを使用しようとしていますが、どちらかがうまく動作していないようです(.suggestionsBox-stock- stickを置く:fixed; top:0px;) – user2101411

関連する問題