2012-06-11 15 views
5

http://jsfiddle.net/cbp4N/16/pozycję przewijania utracone, gdy ukrywanie div

Jeśli pokażesz div. Zmień pozycję przewijania, a następnie ukryj i pokaż, czy pozycja przewijania została utracona.

jestem robi nic złego, czy jest to błąd. Czy jest sposób obejścia go z som wtyczek.

/Anders

Dzięki za odpowiedzi i rozwiązań. Ale co jeśli div, który ukrywam, jest zewnętrznym divem, a przewijany div jest głęboko wewnątrz div, który ukrywam. Czy istnieje inteligentny sposób, aby to naprawić. Becuse teraz nie mogę ustawić/zapisać pozycję przewijania w zwrotnego z ukrycia/pokazać

+0

jesteś demo jest po prostu działa dobrze – thecodeparadox

+0

Jest to oczekiwane zachowanie, ponieważ nie można ustawić wartość przewijania ukrytego elementu. – Quantastical

+0

że oczekuje się, trzeba by zapisać pozycję przewijania i przywrócić go na wystawie –

Odpowiedz

5

jQuery za .scrollTop() działa dobrze, jeśli utrzymać pozycję danych.

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

Jest to normalne zachowanie, ponieważ element jest ustawiony na najsłabiej możliwych zmiennych w pamięci kiedy go ukryć. Jeśli chcesz zapamiętać pozycję przewijania trzeba będzie przechowywać te samodzielnie, a następnie zastosować funkcję przewijania na pokazaniu go.

Scroll Position of div with "overflow: auto"

Powiązane problemy