/ / come posso impedire lo scorrimento verso il basso in javascript? - javascript

come posso evitare di scorrere verso il basso in javascript? - javascript

ok ... potrei essere pigro a cercare ma è un po 'fastidioso che tutto quello che riesco a trovare sia

"come posso impostare l'evento di scorrimento verso il basso" quando ho cercato "come impedire lo scorrimento verso il basso".

nel mio codice javascript, ho impostato l'evento per il tasto freccia giù. Quando premo la freccia in basso

dal browser, il browser non solo fa un evento che ho impostato, ma lo fa anche

scorrendo la pagina verso il basso che non è previsto. Quindi questa è la mia domanda.

Come posso disabilitare la funzione di scorrimento verso il basso che si verifica quando premo la freccia verso il basso?

Qualsiasi aiuto sarà apprezzato.

risposte:

3 per risposta № 1

Se vuoi impedire la barra di scorrimento verticale e qualsiasi azione di scorrimento verticale da parte dell'utente, puoi utilizzare questo javascript:

document.body.style.overflowY = "hidden";​

Oppure, questo può anche essere impostato con una regola CSS:

body {overflow-y: hidden;}

D'altra parte, se quello che stai cercando di fare è impedire che il gestore di tasti predefinito per la freccia in giù faccia qualsiasi cosa dopo aver elaborato l'array in basso, allora devi chiamare e.preventDefault() come questo:

function myKeyDownHandler(e) {
// your code here
e = e || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;   // older versions of IE (yuck)
}
return false;
}

Un modo più pulito se hai bisogno di farlo in più di un posto sarebbe creare la tua funzione cross browser per questo:

function preventDefault(e) {
e = e || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;   // older versions of IE (yuck)
}
}

function myKeyDownHandler(e) {
// your code here
preventDefault(e);
return false;
}

Questo è uno di quegli esempi perfetti in cui un framework cross-browser (jQuery / YUI / ecc.) Ti fa risparmiare tempo perché hanno già fatto tutto questo lavoro cross-browser per te.

Ecco un articolo interessante sopra preventDefault e stopPropagation().


1 per risposta № 2

Ecco una pagina di esempio che non consente l'uso dei tasti freccia per lo scorrimento:

<script>
document.onkeydown = function(evt) {
evt = evt || window.event;
var keyCode = evt.keyCode;
if (keyCode >= 37 && keyCode <= 40) {
return false;
}
};
</script>
<body style="height:3000px;">

</body>