我有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