Скорость анимации не меняется в Safari / Chrome Iphone - PullRequest
0 голосов
/ 13 мая 2019

Я использую анимацию ключевых кадров, чтобы вращать круг. Он отлично работает в браузерах Android, Chrome и Mozilla. Но скорость анимации при нажатии кнопки не меняется в Safari / Chrome iphone.

class App extends React.Component{
    state = {
      speedClass : "two"
    };
    
    render(){
        return(
           <div>
               <div className={"spinMe " + this.state.speedClass}>I am spinning</div>
               <button onClick={this.handleClick}>Change speed</button>
           </div>
        );
    }
    
    handleClick=()=>{
      this.setState({ speedClass: this.state.speedClass === "two"?"one":"two" });
    }
}

ReactDOM.render(
  <App/>,
  document.getElementById("root")
);
.spinMe{
  width:100px;
  height:100px;
  border-radius:50%;
  border:1px solid red;
  display:flex;
  justify-content:center;
  align-items:center;
}

.spinMe.one {
    -moz-animation: spin 1s infinite linear;
    -webkit-animation: spin 1s infinite linear;
    -o-animation: spin 1s infinite linear;
     animation: spin 1s infinite linear;
  }

.spinMe.two {
    -moz-animation: spin 2s infinite linear;
    -webkit-animation: spin 2s infinite linear;
    -o-animation: spin 2s infinite linear;
     animation: spin 2s infinite linear;
  }
}

@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-moz-keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-o-keyframes spin {
 from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
 from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>

Я не могу найти решение, пожалуйста, помогите мне исправить это. В iPhone скорость не влияет. В чем может быть проблема?

1 Ответ

0 голосов
/ 14 мая 2019

Чтобы исправить это, я добавил одну и ту же ключевую анимацию два раза.И по нажатию, я переключаю анимацию, и она просто работает!

...