需要实现效果:
有两个状态A,B,点击后A->B,再次点击B->A;
例子:点击元素有元素变大, 再次点击元素变小,但是我写的只有在第一次点击的时候
有效果
JSFiddle: https://jsfiddle.net/sylvaner...
需要实现效果:
有两个状态A,B,点击后A->B,再次点击B->A;
例子:点击元素有元素变大, 再次点击元素变小,但是我写的只有在第一次点击的时候
有效果
JSFiddle: https://jsfiddle.net/sylvaner...
如果是简单的动画效果,可以用transition,设定需要动画的属性,然后用一个class来设定动画的终止状态,然后点击事件来增加或移除class来实现动画
例:
HTML
<div id="target">target</div>
CSS
div#target { height:50px; width: 50px; transition: height 1s ease-in, width 1s ease-in;}
.big { height: 100px; width: 100px;}
JS
document.getElementById('target').addEventListener('click', function(){this.classList.toogle('big');}, false);
如果你要实现复杂CSS动画,那控制起来就有点麻烦了,你要监听Animation事件来获知动画当前的状态,用animation-play-state来控制播放。因为没有提供动画控制的API,所以还不如用JS动画来得方便。
11 回答1.3k 阅读
1 回答677 阅读
770 阅读
用transition;
css
js