【发布时间】:2014-10-04 09:43:15
【问题描述】:
根据this CSS Tricks article 的建议,我尝试编写一些代码来使用 JavaScript 诱导 CSS 转换。
(这是我的jsFiddle。)
HTML:
<button id="button" onclick="doMove2()" value="play">Play</button>
<div class="foo"></div>
CSS:
#button {
position: absolute;
width: 200px;
height: 50px;
top: 185px;
left: 0px;
}
.foo {
position: absolute;
width: 50px;
height: 50px;
border: 1px dashed black;
left: 0px;
top: 120px;
}
.foo.horizTranslate {
-webkit-transition: 3s;
-moz-transition: 3s;
-ms-transition: 3s;
-o-transition: 3s;
transition: 3s;
margin-left: 50% !important;
}
JavaScript:
var foo = document.getElementsByClassName('foo')[0];
function doMove2(){
document.getElementById("button").onclick = function(){
if(this.innerHTML === 'Play'){
this.innerHTML = 'Pause';
foo.classList.add('horizTranslate');
} else {
this.innerHTML = 'Play';
var computedStyle = window.getComputedStyle(foo2),
marginLeft = computedStyle.getPropertyValue('margin-left');
foo.style.marginLeft = marginLeft;
foo.classList.remove('horizTranslate');
}
}
}
为什么这不起作用?
谁能解释一下过渡和动画之间的区别?
【问题讨论】:
-
Uncaught ReferenceError: doMove2 is not defined -
你只需要调用
doMove2()添加事件监听,就可以了:jsfiddle.net/rbyfzkqc/2 -
doMove2被包装在一个 onload 函数中。如果你这样做window.doMove2 = function(){...,它会起作用。 -
感谢 pawel,它现在可以在我的小提琴中使用,但在我的文件中仍然无法使用。你有什么建议吗?
标签: javascript css animation transition