2012-07-04 13 views

Odpowiedz

15

Jest to jedyny CSS będziesz ned zmusić przewijania:

html{ 
    overflow-y: scroll; 
} 

paski przewijania zostanie wyłączone, jeśli zawartość jest mniejsza niż okno, więc trzeba będzie korzystać z niektórych skrypt do rozmiaru ciała być co najmniej 1px mniej niż wysokość okna: [? Wystarczy wyłączyć przewijania nie ukrywać]

$("body").css({ "height" : ($(window).height() - 1) + 'px', "overflow": "hidden" }); 
+0

Wykonuje to naprawdę dobrze. Jednak zamiast używać JS do definiowania wysokości ciała, uważam, że czystsze jest przejście z css. Przy odrobinie zabawy, znalazłem dwie opcje: Zastosuj pozycję: naprawiono; do tagu html wraz z przepełnieniem-y: scroll; Lub, jeśli używasz frameworka, które dodaje już przepełnienie: ukryte, do znacznika twojego ciała (zakładam, że większość osób, które przeszukały ten problem, mają go, ponieważ przepełnienie: ukryte, na ciele), możesz po prostu zdefiniować wysokość ciała za pomocą 100vh . Nie zapomnij usunąć tych styli, gdy modal jest zamknięty. – mizurnix

+0

Dobry połów. Dodajecie własną odpowiedź, więc mogę ją przyjąć. – rcdmk

+0

Dzięki, ale jeszcze nie skończyłem swojego rozwiązania :) Próbuję zastosować to do bardzo długiej strony, więc większość czasu użytkownicy najpierw przewiną, a następnie otworzą modal i wszystkie moje opcje spowodują, że pasek przewijania będzie nadal aktywny lub przewijam użytkownik górny, a następnie wyłącza pasek przewijania. Sprawdziłem, co robi facebook i używają ustalonej pozycji plus dodanie topu: xxxxx pikseli (w oparciu o to, jak daleko już przewinąłeś) na opakowaniu zawartości (w ich przypadku nie ma ciała). Kiedy skończę, mogę dodać to jako odpowiedź – mizurnix

-4
overflow-y: scroll; 

To powinno być to, czego szukasz.

+0

nie będzie ** wyłączyć ** paska przewijania –

+0

To po prostu pokazuje pasek przewijania zawsze, ale nie wyłącza przewijania, prawda? –

+0

Och, myślałem, że chcesz zostawić pasek przewijania tam, nawet jeśli nie ma wystarczającej ilości treści na stronie. Jak chcesz przewinąć, jeśli zawartość jest większa niż ekran przeglądarki? – Chad

Powiązane problemy