2012-06-11 10 views
5

http://jsfiddle.net/cbp4N/16/divを非表示にするとスクロール位置が失われる

divを表示すると、スクロール位置を変更し、スクロール位置が失われていることを表示して非表示にします。

私は何か間違っているか、これはバグです。 somプラグインを使用する方法がありますか。

/アンダー

お返事ありがとうございました。しかし、もし私が隠しているdivが外側のdivで、スクロールdivが私が隠れているdivの中に深い場合はどうでしょうか?これを修正するスマートな方法はありますか?今すぐ使えるようにする/隠す/表示のコールバックでスクロール位置を設定/保存する

+0

あなたはデモはちょうどあなたが隠された要素のスクロール値を設定することはできませんので、これは、予想される動作です細かい – thecodeparadox

+0

を取り組んでいます。 – Quantastical

+0

が期待されていると、スクロール位置を保存して表示にリセットする必要があります –

答えて

5

jQueryの.scrollTop()はうまく動作します。

$('#cbxShowHide').click(function(){ 
    if(this.checked) { 
     $('#block').show('fast',function() { 
      $(this).scrollTop($(this).data('scroll')); 
     }); 
    } 
    else { 
     $('#block').data('scroll',$('#block').scrollTop()); 
     $('#block').hide('fast'); 
    } 
}); 

example

1

これは、要素を非表示にするときに、できる限り最小限の変数に設定されているためです。 スクロール位置を覚えておきたい場合は、スクロール位置を自分で保存し、次にスクロール位置を適用して表示する必要があります。あなたがデータとしての地位を維持している場合

Scroll Position of div with "overflow: auto"

関連する問題