2013-05-19 22 views
13

Chcę wyłączyć przewijanie na mojej stronie, ale całkowicie, nie tylko wyłączenie przewijania takcałkowicie wyłączyć przewijanie strony

overflow: hidden 

nie będzie działać.

Również to obejście nie dotyczy komputerów Mac z powodu "miękkiego przewijania" na krawędziach. Zostanie wyświetlona straszliwa, drżąca animacja:

window.onscroll = function() { 
window.scrollTo(0,0); 
} 

Czy istnieje inna metoda całkowitego wyłączenia przewijania?

+2

można pokazać dlaczego 'overflow: hidden' nie jest praca dla Ciebie? Podaj przykładowy kod. – Brad

+0

przepełnienie: ukryte właśnie usuwa pasek przewijania, ale nie wyłącza przewijania za pomocą kółka przewijania (mówię o przewijaniu w pionie) –

+0

przepełnienie: ukryte zwykle działa idealnie dla mnie. Myślę, że powinieneś podać przykład, na przykład @Brad. –

Odpowiedz

37

Zakładając uproszczony kod HTML są:

<html><body><div class=wrap>content...</div></body></html> 

ustawić zarówno korpus, HTML, wysokość: 100%;

body, html {height:100%;} 

Put div wewnątrz ciała, i ustawić ją rozciągać w poprzek całej wysokości ciała:

div.wrap {height:100%; overflow:hidden;} 

Zapobiegnie to okno z przewijania w dziwnych sposobów, jak naciśnięcie kółka myszy i przesuwając go, za pomocą kotew itp

Aby usunąć sam (wizualnie) pasek przewijania, należy również dodać:

body {overflow: hidden; } 

Aby wyłączyć przewijanie poprzez naciskanie klawiszy strzałek na klawiaturze:

window.addEventListener("keydown", function(e) { 
    // space, page up, page down and arrow keys: 
    if([32, 33, 34, 37, 38, 39, 40].indexOf(e.keyCode) > -1) { 
     e.preventDefault(); 
    } 
}, false); 
Powiązane problemy