Amici, ho creato una funzione che fa un elemento animate
o 'desanimate'
a seconda di dove il rotolo del corpo o di un div è, sta funzionando bene, come funziona?fare animazione con scrollTop
<li data-animation-time="[100, 800]" data-animation-position="right" class="list-item one"></li>
il valore first
dell'array data-animation-time
è il valore initial
, cioè la funzione animatore deve essere chiamato quando il scrollTop
passaggio tale valore, il valore second
è il end
, la funzione 'desanimate'
deve essere chiamato quando il passaggio scrollTop
quel valore.
Tutto funziona come si può vedere qui -> Codepen: http://codepen.io/celicoo/pen/ogKGEP (è necessario scorrere per vedere l'animazione accade).
Ora voglio per determinare in che modo l'animazione per accadere e in che modo dovrebbe finire, per questo ho cambiato questo attr:
data-animation-position="right-to-left"
invece di right
o left
, e aggiungo alcune dichiarazioni IFS al animation
e la funzione 'desanimation':
Animate:
var animate = function(target, position) {
target.css('display', 'inline-block');
if (position === 'right-to-right') {
target.animate({
opacity: 1,
right: '0px'
}, 500);
}
else if (position === 'right-to-left') {
target.animate({
opacity: 1,
right: '0px'
}, 500);
}
else if (position === 'left-to-left') {
target.animate({
opacity: 1,
left: '0px'
}, 500);
}
else if (position === 'left-to-right') {
target.animate({
opacity: 1,
left: '0px'
}, 500);
}
};
'Desanimate':
var desanimate = function(target, position) {
if (position === 'right-to-right') {
target.animate({
opacity: 0,
right: '245px'
}, 500);
}
else if (position === 'right-to-left') {
target.animate({
opacity: 0,
left: '245px'
}, 500);
}
else if (position === 'left-to-left') {
target.animate({
opacity: 0,
left: '245px'
}, 500);
}
else if (position === 'left-to-right') {
target.animate({
opacity: 0,
right: '245px'
}, 500);
}
};
E non sta funzionando nel modo "desanimato", qualcosa non funziona bene, e davvero non posso vedere di cosa si tratta.
Qualcuno potrebbe darmi una mano qui? Cosa potrebbe fare "desanimato" non funziona quando ho invertito i valori del passo?
Esempio:
left-to-right
right-to-left
Codepen with old code working just with one side (ex: left or right);
Propongo di provare a realizzarlo solo con CSS e forse se qualcosa è impossibile con esso - usa un piccolo supporto di JS.Usa sempre i CSS quando è possibile, semplifica molto le cose. – victor175
Con i CSS e ancora dare supporto a IE8? Non penso sia possibile @ vitttor175 –
Beh, puoi provarlo, anche se usi alcune proprietà non supportate puoi sicuramente ottenere uno shim/shiv o qualcosa di simile per coprirlo per te. – victor175