Ich habe 4 Tasten, Taste 1 sollte eine Animation auslösen, Taste 2 sollte diese Animation umkehren, das funktioniert, mit einem kleinen CSS-Catch, obwohl. (Ich möchte die divs wieder in Position durch Klicken auf die Schaltfläche 2, nicht zuerst erscheinen, dann animiert werden, wäre ich glücklich über eine Lösung für diese auch).Funktion läuft nur einmal
Jetzt Taste 3 bewirkt, dass die divs herausfliegen, Taste 4 bringt sie wieder an ihren Platz, aber dieser Prozess funktioniert nur einmal.
Ich habe die folgenden Funktionen auf Klick ausgelöst
function animationTwo() {
var div1 = document.querySelector('.inner1');
var div2 = document.querySelector('.inner2');
var div3 = document.querySelector('.inner3');
var div4 = document.querySelector('.inner4');
removeAllClasses('div1', 'div2', 'div3', 'div4');
setTimeout(function() {
addClass(div1, 'outTopLeft');
addClass(div2, 'outTopRight');
addClass(div3, 'outTopRight');
addClass(div4, 'outTopRight');
}, 100);
}
function reverseAnimationTwo() {
var div1 = document.querySelector('.inner1');
var div2 = document.querySelector('.inner2');
var div3 = document.querySelector('.inner3');
var div4 = document.querySelector('.inner4');
removeAllClasses('div1', 'div2', 'div3', 'div4');
setTimeout(function() {
addClass(div1, 'inAgain');
addClass(div2, 'inAgain');
addClass(div3, 'inAgain');
addClass(div4, 'inAgain');
}, 100);
}
Manchmal bekomme ich einen Referenzfehler, „Element“ ist nicht definiert, aber manchmal gibt es keinen geworfen Fehler. Es funktioniert immer nach der Seitenaktualisierung.
Hier sind die Add- und Klassenfunktionen entfernen, die in den obigen Funktionen aufgerufen werden:
function addClass(element, classToAdd) {
var currentClassValue = element.className;
if (currentClassValue.indexOf(classToAdd) == -1) {
if ((currentClassValue == null) || (currentClassValue === "")) {
element.className = classToAdd;
} else {
element.className += " " + classToAdd;
}
}
}
function removeAllClasses(el, el, el, el) {
var currentClassValue = el.className;
el.className = "";
};
Eine andere Sache ist, möchte ich die Animationen werden müssen, gestaffelt für jedes div, wie die ausgelöst wird, wenn Klicken Sie auf die erste Schaltfläche, aber ich habe keinen Erfolg mit weder Schleife noch Rückrufe, ich habe es versucht. Und die Bildlaufleisten beim Anklicken der Schaltflächen 3 und 4, wie kann ich diese vermeiden? Ich weiß, das ist eine Mischung aus JS und Css Fragen, und ich hoffe, dass dies niemanden verärgert.
Link zu Stift:
http://codepen.io/damianocel/pen/QdKyzm
Sie erscheinen zwei Funktionen aufgerufen haben 'reverseAnimationOne' –
Side Hinweis: Lernen Sie die 'Element.classList'-Eigenschaften 'a dd() '&' remove() 'Methode zum Hinzufügen und Entfernen von CSS-Klassen – Satpal
@JohnHascall, danke, ich habe eine von ihnen entfernt, immer noch alle gleich. satpal, ich bin mit der fehlerhaften className-Eigenschaft gegangen, da mir kalt nichts Gutes einfällt, um alle Klassen mit Element.classList zu entfernen. Wenn Sie eine Lösung dafür haben, würde ich gerne darüber erfahren. – ptts