CSS中的转换似乎失败了,原因是什么
Transitionend in CSS seems to fail, why?
所以我试图修改KuKu-Kube游戏的纯HTML/CSS版本,添加计时器、更多级别和标准化的一面,但我可能会解决这些问题。
所以,我有一段代码:
var element = document.getElementsByClassName("cube");
element.addEventListener("transitionend", showMessage(), false);
element.addEventListener('webkitTransitionEnd', showMessage(), false);
element.addEventListener('oTransitionEnd', showMessage(), false);
element.addEventListener('transitionend', showMessage(), false);
element.addEventListener('msTransitionEnd', showMessage(), false);
我花了至少一个小时仔细研究了以前的代码,作为一个新手,我的分析是,多维数据集是复选框,它们会转换。
顺便说一句,JSFiddle在这里,但我觉得它不起作用的原因是在这5行。
那么,为什么transitionend不触发showMessage()呢?
提前谢谢。
因为您正在立即调用showMessage
,而不是将其设置为事件侦听器。
例如,如果你这样做:
var value = showMessage();
console.log(value);
您可能会在控制台中看到undefined
。相反,您希望传递函数本身作为参数,而不是它的返回值。
element.addEventListener('transitionend', showMessage, false);
// Notice the lack of () --^
此外,如果你打开你的控制台,你会看到你得到了一个
未捕获的类型错误:element.addEventListener不是函数
错误。这是因为document.getElementsByClassName
返回的是节点的集合,而不是单个节点。相反,您应该循环遍历该集合,并将事件附加到每个单独的节点。
var elements = document.getElementsByClassName('cube');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
element.addEventListener('transitionend', showMessage, false);
// ...
}
您基本上是在用cube调用所有元素——所以它是一个数组——您必须对它进行迭代,才能为所有元素添加监听器。Fiddle Here
var elements = document.getElementsByClassName("cube");
for(var i=0; i<elements.length; i++){
element[i].addEventListener("transitionend", showMessage, false);
element[i].addEventListener('webkitTransitionEnd', showMessage, false);
element[i].addEventListener('oTransitionEnd', showMessage, false);
element[i].addEventListener('transitionend', showMessage, false);
element[i].addEventListener('msTransitionEnd', showMessage, false);
}
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- CSS中的转换似乎失败了,原因是什么
- 这个单元测试失败的原因是什么
- 什么'这是在失败时使用jQuery重试AJAX请求的最佳方式
- js基本示例-是什么导致这个数据绑定失败
- 简单的JavaScript空字符串检查,(空字符串)是什么意思,为什么失败