我有4個按鈕,按鈕1應該觸發一個動畫,按鈕2應該顛倒那個動畫,這個工作,雖然有一個小的css catch(我希望div通過點擊按鈕返回到位置2,沒有先出現,然後被動畫,我也很高興爲此解決方案)。函數只運行一次
現在按鈕3導致div飛出,按鈕4將它們帶回原位,但此過程僅適用一次。
我發現點擊觸發下列功能
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);
}
有時候,我得到的是沒有定義,「元素」的引用錯誤,但有時,也沒有拋出錯誤。它始終在頁面刷新後生效。
這裏有添加和移除被稱爲在上述功能類功能:
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 = "";
};
另一件事是,我想必須錯開,每個格動畫,就像一個觸發時點擊第一個按鈕,但我沒有成功既不循環也不回調,我試過了。點擊按鈕3和4時滾動條,我該如何避免這些? 我知道這是JS和Css問題的混合體,我希望這不會讓任何人不安。
鏈接到筆:
http://codepen.io/damianocel/pen/QdKyzm
你似乎有兩個函數調用'reverseAnimationOne' –
方注意:學會使用'Element.classList' propiece'a dd()'&'remove()'方法添加和刪除CSS類 – Satpal
@JohnHascall,謝謝,我已經刪除了其中的一個,儘管如此。 satpal,我已經和有缺陷的className屬性一起走了,因爲我沒有想到用Element.classList去除所有類。如果您有解決方案,我很樂意瞭解它。 – ptts