2016-08-01 9 views
0

固定ボタン付きのdivがある。私もフォーム上にフォームを持つページがあり、私は私のフォームの送信ボタン(下)に達するまで固定divを隠したいと思っています。特定のポイントの後に固定されたdivを表示する(応答する)

私は(少し安っぽいかもしれない)これで実験されています:。

$(document).ready(function() { 
    $("#MyFixedDiv").hide(); //hide your div initially 
    var topOfOthDiv = $("#MyForm").offset().top; 
    $(window).scroll(function() { 
    if($(window).scrollTop() > topOfOthDiv) { //scrolled past the other div? 
     $("#MyFixedDiv").show(200); //reached the desired point -- show div 
    } else { 
     $("#MyFixedDiv").hide(200); //reached the desired point -- hide div 
    } 
    }); 
}); 

これの問題は、()のトップは、送信ボタンの後に私の固定のdivが表示されないこと.offsetです。ウィンドウのサイズ変更は最適な解決策ではありません。

今までの最善の方法は、Zインデックスと遊ぶことでしたが、私は、よりエレガントな解決策があるかもしれないと思います。

送信ボタンは、画面が320PX幅または1280px幅であっても、ここでユーザーは自分のフォームの絶対的な底に達したとき、いつも一定のdivを表示する方法はありますか? -tagsのアンカーポイントと同じです。

EDIT:

画面の上部と、それが見えないように持っている私のフォームの底部との間に

enter image description here

は、どんな高さ、それはその後、私のフォームの下にそれがあり、かかる場合があります。次に例を示します。表示され、底まで固定されています。 this fiddle

+0

ライブリンクがありますか。 – amflare

+0

申し訳ありませんが、私は私の説明が十分であることを期待しました。 – Jorus

+0

[jsfiddle](http://jsfiddle.net)は、あなたのCSSとHTMLで助けになります –

答えて

0

、私は、実施例を示しました。

理想的には、できるだけCSSでこのような何かを行うのがベストです。要素は固定され、最初は隠されています。次に、特定のスクロールポイントに達すると、それを可視にするクラスが追加されます。このクラスは、あまりにも高くスクロールすると削除されます(など)。

あなたのバグの原因が何も表示されていないことを100%確信していません。それは最初の$("#MyFixedDiv").hide();でした。表示/非表示にCSSを使い始めた後、私は再びそれに遭遇しませんでした。

+0

はい、私は理解していますが、それはある点から見えるようにしたいので、スクロールする高さを与えません。私はスクロールするアンカーポイントを持っていなければなりません。それはそのポイントから始まり、高さからではありません。私のフォームは他のものと同様に反応します。私はあなたにもう少し明確にするためにイメージを追加しました。 – Jorus

関連する問題