Nella mia pagina ho due tabelle di uguale larghezza e entrambe fanno lo scroll orizzontale. Devo impostare entrambe le tabelle nella stessa posizione quando ciascuna scorre.Come impostare scrollLeft in due oggetti usando defineSetter?
In realtà, il mio codice è:
var scrollA = $('#scrollA'),
scrollB = $('#scrollB');
scrollA.on('scroll', function() {
scrollB[0].scrollLeft = scrollA[0].scrollLeft;
});
Funziona. Il problema è che ci sono situazioni in cui i dati caricati sono abbastanza grandi da rallentare il browser e l'evento di scorrimento.
Quindi, sto cercando di migliorare l'esperienza dell'utente in quelle situazioni.
ho fatto questo frammento in cui cerco di usare la funzione __defineSetter__
di Object
:
var elementA = { scrollLeft: 30 },
elementB = { scrollLeft: 30 };
elementA.__defineSetter__('scrollLeft', val => elementB.scrollLeft = val);
elementA.scrollLeft += 5;
console.log(elementA.scrollLeft + ' == ' + elementB.scrollLeft);
Ma come si può vedere l'esecuzione del frammento, imposta undefined
-elementA.scrollLeft
e NaN
a elementB.scrollLeft
.
Vorrei una guida qui, grazie per il vostro tempo.
'__defineSetter__ è' è deprecato, usare 'defineProperty()' – zer00ne
Invece di avere barra di scorrimento separato per ogni tavolo perché non può u provare a mettere entrambi in un contenitore e hanno un barra di scorrimento per quel contenitore in modo che possiamo evitare questo scenario. Sto suggerendo questo bcoz hai detto che entrambi i tavoli hanno la stessa larghezza – Varatharaj
@ Varatharaj. In realtà, si tratta di un plug-in su cui sto lavorando e che blocca colonne e/o intestazioni di un tavolo ... Non posso testarlo ora, ma proverò la tua idea più tardi –