Semplice, Vorrei solo che sia così quando un utente sta trascinando un oggetto e che raggiungano il fondo o la parte superiore della finestra (10px o giù di lì), la pagina (circa 3000px lungo) Scrolls delicatamente verso il basso o verso l'alto, fino a quando non spostano il cursore (e quindi l'elemento trascinato) fuori regione.Come utilizzare JQuery/Javascript per scorrere verso il basso una pagina quando il cursore si trova sul bordo superiore o inferiore dello schermo?
Un elemento è un tag li che utilizza jquery per rendere trascinabili gli elementi dell'elenco. Per essere specifici:
- ../jquery-ui-1.8.14.custom.min.js
- http://code.jquery.com/jquery-1.6.2.min.js
Attualmente uso window.scrollBy (x = 0, y = 3) per scorrere la pagina e avere le variabili di:
- e.pageY ... fornisce assoluti Y-coordinate del cursore sulla pagina (non relativa a schermo)
- $ .scrollTop() ... fornisce offse t dalla parte superiore della pagina (quando la barra di scorrimento è completamente alzata, è 0)
- $ .height() ... fornisce l'altezza dell'area visualizzabile nel browser/viewport dell'utente
- body.offsetHeight .. altezza dell'intera pagina
Come posso ottenere questo e quale evento lo ospita meglio (attualmente è il mouseover)? Le mie idee:
- uso un un if/else per verificare se è in alto o in basso regione, scorrere verso l'alto se e.pageY sta dimostrando che è in alto, verso il basso se e.page & è in fondo e quindi chiama $ ('li'). mouseover() per iterare attraverso ...
- Utilizzare un ciclo do while ... questo ha funzionato moderatamente bene in realtà, ma è difficile smettere di scorrere fino a lontano. Ma io non sono sicuro di come controllare le iterazioni ....
Il mio ultimo tentativo:
('li').mouseover(function(e) {
totalHeight = document.body.offsetHeight;
cursor.y = e.pageY;
var papaWindow = window;
var $pxFromTop = $(papaWindow).scrollTop();
var $userScreenHeight = $(papaWindow).height();
var iterate = 0;
do {
papaWindow.scrollBy(0, 2);
iterate++;
console.log(cursor.y, $pxFromTop, $userScreenHeight);
}
while (iterate < 20);
});
FYI, io sono solo preoccupato per i nuovi browser, principalmente FF e Chrome ... IE 7 o meno non esiste nel mio "mondo" – webDevAndEverythingElse
hi, hanno ora ottenuto una soluzione di lavoro per questo problema? puoi postarlo? Ho un problema simile pubblicato qui: http://stackoverflow.com/questions/11222047/how-to-scroll-when-cursor-is-on-the-edge-of-div#comment14738038_11222047 – Xerxes