Ripetendo il modello in JavaScript
-
26-12-2019 - |
Domanda
Come ripeterei il modello di trasformazione sottostante?
BoxesFx.prototype._setTransforms = function() {
this.transforms = {
'effect-1' : {
'next' : [
'translate3d(0, ' + (win.height/2+10) + 'px, 0)',
'translate3d(-' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(0, -' + (win.height/2+10) + 'px, 0)',
],
'prev' : [
'translate3d(' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(0, ' + (win.height/2+10) + 'px, 0)',
'translate3d(0, -' + (win.height/2+10) + 'px, 0)',
'translate3d(-' + (win.width/2+10) + 'px, 0, 0)'
]
}}}
.
Fondamentalmente, sto cercando di avere:
'translate3d(0, ' + (win.height/2+10) + 'px, 0)',
'translate3d(-' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(0, -' + (win.height/2+10) + 'px, 0)'
.
Ripeti la quantità di volte, possiamo dire n sarà 3, senza copiarsi e incollarlo in 3 volte.C'è un modo per duplicare un array?Mi sento come se fossi confuso .. spero di averlo spiegato bene
Soluzione
Basta definire l'array fuori
var translate =[
'translate3d(0, ' + (win.height/2+10) + 'px, 0)',
'translate3d(-' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(' + (win.width/2+10) + 'px, 0, 0)',
'translate3d(0, -' + (win.height/2+10) + 'px, 0)',
];
BoxesFx.prototype._setTransforms = function() {
this.transforms = {
'effect-1' : {
'next' : translate,
'prev' : translate
}}}
.
I due array che non hai lo stesso, ma suppongo che potessero essere, come non puoi fare riferimento a un array due volte e ottenere due array completamente diversi?
Se hai bisogno di una nuova copia effettiva dell'array ogni volta, puoi fare
'next' : translate.slice(0)
.
invece
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow