5

http://jsfiddle.net/cbp4N/16/

divを表示する場合。スクロール位置を変更してから非表示にして、スクロール位置が失われるように表示します。

私は何か間違ったことをしているのですか、それともこれはバグですか。somプラグインでそれを回避する方法はありますか?

/アンダース

答えと解決策をありがとう。しかし、非表示にするdivが外側のdivであり、スクロールするdivが非表示にするdivの奥深くにある場合はどうなりますか。これを修正するための賢い方法はありますか?非表示/表示のコールバックでスクロール位置を設定/保存できないため

4

2 に答える 2

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');
    }
});

于 2012-06-11T15:10:16.573 に答える
1

これは正常な動作です。これは、要素を非表示にすると、要素がメモリに対して可能な限り少ない変数に設定されるためです。スクロール位置を覚えておきたい場合は、それらを自分で保存してから、表示時にスクロール位置を適用する必要があります。

「overflow: auto」でdivのスクロール位置

于 2012-06-11T15:00:05.237 に答える