2013-05-19 4 views
13

Je veux désactiver le défilement pour ma page Web, mais complètement, pas simplement désactiver les barres de défilement sicomplètement désactiver le défilement de la page Web

overflow: hidden 

ne fonctionnera pas.

Cette solution de contournement ne s'applique pas aux Mac en raison du "défilement progressif" sur les bords. Il montrera une animation tremblante terrible:

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

Existe-t-il une autre méthode pour désactiver complètement le défilement?

+2

Pouvez-vous montrer pourquoi 'overflow: hidden' ne fonctionne pas pour vous? Fournir un exemple de code. – Brad

+0

débordement: caché juste supprime la barre de défilement, mais il ne sera pas désactiver le défilement avec la molette de défilement (je parle de défilement vertical) –

+0

débordement: caché fonctionne généralement parfait pour moi. Je pense que vous devriez fournir un exemple comme @Brad dit. –

Répondre

37

présumant le code HTML simplifié est:

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

Set le corps, html à la hauteur: 100%;

body, html {height:100%;} 

Mettre un div l'intérieur du corps, et le mettre à étirer sur toute la hauteur du corps:

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

Cela permettra d'éviter la fenêtre de défilement de manière étrange, comme, en appuyant sur la roue de la souris et en le déplaçant, en utilisant des ancres, etc.

Pour supprimer la barre de défilement lui-même (visuellement), vous devez ajouter:

body {overflow: hidden; } 

Pour désactiver le défilement via appuyant sur les touches fléchées du clavier:

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); 
Questions connexes