2012-09-22 11 views
5

Mam lewy pionowy pasek boczny, który, gdy użytkownik przewija w pionie, pasek boczny przewija się w pionie wraz z użytkownikiem. Jednak gdy użytkownik przewija poziomo, jeśli okno jest zbyt małe, pionowy pasek boczny przesuwa się wraz z oknem. Jak zatrzymać przewijanie paska bocznego, ale także pozwolić pionowemu przewijaniu paska bocznego z użytkownikiem.Pozycja ustalona - przewijanie poziome

I nie chcę tego robić.

overflow: hidden; 

jak chcę, aby użytkownik miał możliwość przewijania w poziomie, ale po prostu nie chcesz pasek boczny, aby przyjść z nimi.

to jest mój javascript:

$(document).ready(function(){ 
    var top = $("#sidebar").offset().top; 
    $(window).scroll(function(){ 
     var y = $(window).scrollTop(); 
     if (y >= top) { 
      $("#sidebar").addClass('fixed'); 
     } else { 
      $("#sidebar").removeClass('fixed'); 
     } 
    }); 
}); 

i mój CSS:

#sidebar { 
    position: absolute; 
    height: 100%; 
    min-width: 100px; 
    width: 100px; 
    overflow: hidden; 
    background-color: #ededed; 
    border-right: 1px solid #aaa 
    } 
#sidebar.fixed { 
    position: fixed; 
    height:100%; 
    top: 0%; 
    z-index: 1; 
} 
+0

Pokazuje swoją JavaScript i CSS nie ma sensu, jeśli nie możemy zobaczyć HTML. – Sparky

+1

"Nie jest to prawdziwe pytanie" to termin zwalniający używany tak często przez osoby zamykające pytanie. – Jawad

Odpowiedz

4

Następnie ustalona jest chyba źle appoach.

Teoretycznie można użyć funkcji .scroll, aby zaktualizować elementy absolutnej najwyższej pozycji, jeśli górne zmiany, ale zignorować zdarzenie przewijania po zmianie właściwości lewej strony.

Proszę spojrzeć na ten mały i bardzo prosty przykład. http://jsfiddle.net/Hbkdt/

Uwaga: Można połączyć to z funkcją animacji i odbić zdarzenie okna, tak aby uruchamiał się tylko co 30-50 milisekund, a następnie aktualizował wartości.

animowane i debounced przykład: http://jsfiddle.net/Hbkdt/1/

+0

, więc nie przeczytałeś ostatniego zdania? – Luke

+0

jak dokładnie to robię? :/ –

+0

zaktualizował odpowiedź ... – Luke

Powiązane problemy