-> Si prega di goto Modifica parte di questa domandasincronizzazione di due div di scorrimento non è corretta in iOS
voglio sincronizzare barra di scorrimento di due div e questo è come sto facendo
var div1 = document.getElementById('element1'),
div2 = document.getElementById('element2');
div1.addEventListener('touchmove', scrolled, false);
div2.addEventListener('touchmove', scrolled, false);
function getscrollTop(node) {
return node.pageYOffset || node.scrollTop;
}
function scrolled() {
var node = this, scrollTop = getscrollTop(node);
var percentage = scrollTop/(node.scrollHeight - node.clientHeight);
var other = document.getElementById({
"element1": "element2",
"element2": "element1"
}[node.id]);
other.scrollTop = percentage * (other.scrollHeight - other.clientHeight);
};
Fiddle -> utilizzato scroll
invece touchmove
Ma il problema è che è tremolante nei dispositivi di fascia bassa e vorrebbe renderlo liscio in dispositivi di fascia bassa di evento.
Modifica
Ho usato qui di seguito il codice per lisciare lo scorrimento
var children = document.querySelectorAll('.scrolldiv');
var getscrollTop = function(node) {
return node.pageYOffset || node.scrollTop;
}, toInt = function(n) {
return Math.round(Number(n));
};
window.setInterval(function() {
var scrollTop = getscrollTop(children[0]);
var percentage = scrollTop/(children[0].scrollHeight - children[0].clientHeight);
var oscrollTop = percentage * (children[1].scrollHeight - children[1].clientHeight);
// console.log(1);
children[1].scrollTop = toInt(oscrollTop);
}, 2);
E 'agevole nei browser desktop, ma in del browser iOS, quando si imposta la seconda div di scorrimento è masturbandosi, strappi nella impostazione dei sensi scrollTop una volta completato lo scorrimento, non durante lo scorrimento.
forse questo ti aiuterà http://stackoverflow.com/questions/17722497/scroll-smoothly-to-specific-element-on-page – lordkain
Una cosa che ho notato è sulla linea 17, stai chiamando una funzione "getscrollTop" (nodo) "che hai già come variabile scrollTop. Inoltre, dichiari "oscrollTop" come variabile e poi assegnalo direttamente a un oggetto alla fine della tua funzione ... assegnalo direttamente all'oggetto. Se sei preoccupato per le prestazioni nei dispositivi di fascia bassa, l'ottimizzazione del codice è estremamente importante. – Michael
@Michael Grazie :) – Exception