ClassList切换不在React中工作。我究竟做错了什么?

时间:2018-05-07 15:11:53

标签: javascript reactjs css-animations codepen

点击它时,我试图让轮子图像旋转(CSS变换+过渡)。现在,我只能在使用' img:active'按住鼠标按钮时旋转它。我已经找到了答案,并且通常会感觉我应该使用onClick来打开和关闭动画的课程,但我似乎并没有做得对。我究竟做错了什么?这是我的代码,供参考:

class Wheel extends React.Component
{
  constructor(props){
    super(props);

    this.spin = this.spin.bind(this);
  }

  spin(e){
    e.classList.toggle('rotate');

  }
  render(){

    return (<div><img width="400" height="400" src="https://orig00.deviantart.net/0a38/f/2010/242/f/6/singapore_wheel_of_fortune_by_wheelgenius-d2xmb9v.jpg" onClick={this.spin}/>
</div>);

  }
}

ReactDOM.render(
  <Wheel/>,
  document.getElementsByClassName('container-fluid')[0]
);

CSS:

.rotate {
-webkit-transform: rotate(1095deg);
-webkit-transition: -webkit-transform 3s ease-out;
}

/* 
img:active {
    -webkit-transform: rotate(1095deg);
    -webkit-transition: -webkit-transform 3s ease-out;
}
*/

我已将所有内容放在https://codepen.io/ejpg/pen/LmOVoR

的CodePen上

提前谢谢。

1 个答案:

答案 0 :(得分:5)

应该是

e.target.classList.toggle('rotate');