我遇到了一个问题,即我的产品代码将事件绑定transitionend
到一个元素。但此事件不会在 Chrome 33、Safari 7.0.2 和 Safari 6.1 上触发。我的代码可以在 Firefox 27.0.1 上正常运行。我的代码曾经在 Chrome 的旧版本(如 25 和 Safari 的 6.0.5)上运行良好。
所以我开始重现这个问题。以下是重现代码:
<p>The box below combines transitions for: width, height, background-color, transform. Hover over the box to see these properties animated.</p>
<div class="box"></div>
.box {
border-style: solid;
border-width: 1px;
display: block;
width: 100px;
height: 100px;
background-color: #0000FF;
-webkit-transition:width 2s, height 2s, background-color 2s, -webkit-transform 2s;
transition:width 2s, height 2s, background-color 2s, transform 2s;
}
.box:hover {
background-color: #FFCCCC;
width:200px;
height:200px;
-webkit-transform:rotate(180deg);
transform:rotate(180deg);
}
document.querySelector('.box').addEventListener('webkitTransitionEnd', function () {
console.log('Transition End.');
}, false);
document.querySelector('.box').addEventListener('msTransitionEnd', function () {
console.log('Transition End.');
}, false);
document.querySelector('.box').addEventListener('oTransitionEnd', function () {
console.log('Transition End.');
}, false);
document.querySelector('.box').addEventListener('transitionend', function () {
console.log('Transition End.');
}, false);
jsFiddle:http: //jsfiddle.net/PPRJX
复制代码无法在 Safari 7.0.2 上运行。但他们可以在 Chrome 33 上运行。
我想让我的代码在最新的 Chrome 和 Safari 上运行。从我的复制代码中,您可以看到transitionend
在 Safari 上不起作用而在 Chrome 上起作用。但在我的产品上,它也不适用于 Chrome。
非常感谢!