2012-06-11 7 views
5

http://jsfiddle.net/cbp4N/16/Scroll-Position verloren beim Ausblenden div

Wenn Sie die div. Ändern Sie die Bildlaufposition und blenden Sie sie aus und zeigen Sie sie an, wenn die Bildlaufposition verloren ist.

mache ich etwas falsch oder ist das ein Fehler. Gibt es einen Weg mit SOM-Plugins.

/Anders

Danke für die Antworten und Lösungen. Aber was, wenn das div, das ich verstecke, ein äußeres div ist und das scrollende div tief in dem div ist, das ich verstecke. Gibt es eine kluge Möglichkeit, dies auch zu beheben? Jetzt kann ich die Scroll-Position im Callback des Hide/Show nicht setzen/speichern

+0

Sie ist sind Demo funktioniert ganz gut – thecodeparadox

+0

Das ist erwartetes Verhalten, da Sie die Scroll-Wert eines verborgenen Elements einstellen. – Quantastical

+0

das erwartet wird, müssten Sie die Scroll-Position speichern und auf Show zurücksetzen –

Antwort

5

jQuerys .scrollTop() funktioniert gut, wenn Sie die Position als Daten erhalten.

$('#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

Dies ist normales Verhalten, weil das Element auf die kleinstmöglichen Variablen im Speicher gesetzt wird, wenn Sie es ausblenden. Wenn Sie sich an die Bildlaufposition erinnern möchten, müssen Sie diese selbst speichern und dann die Bildlaufposition anwenden, um sie anzuzeigen.

Scroll Position of div with "overflow: auto"

Verwandte Themen