Я хочу воспользоваться преимуществами использования микро-взаимодействий на некоторых кнопках в приложении ReactJS, которое я создаю.
Что я пытаюсь сделать:
Когда я наведите / mouseEnter на иконку в div, я хочу, чтобы анимация воспроизводилась. Это Lott ie для иконки.
EditIcon.jsx
import React, { Component } from 'react'
import Lottie from 'react-lottie'
import animationData from '../animations/edit.json'
export default class EditIcon extends Component {
constructor(props) {
super(props);
this.state = {
isStopped: true,
isPaused: true,
Animated: 0,
};
this.defaultOptions = {
loop: false,
autoplay: false,
animationData: animationData
};
}
onMouseEnter = () => {
this.setState({
isPaused: false,
autoplay: true,
Animated: 0
});
console.log("animate");
};
onMouseLeave = () => {
this.setState({
isPaused: true,
autoplay: false,
Animated: 0
});
console.log("stop");
};
render() {
return (
<div id="ethdrop">
<Lottie
className='animation-class'
options={this.defaultOptions}
isStopped={this.state.isStopped}
isPaused={this.state.isPaused}
onMouseEnter={this.onMouseEnter}
onMouseLeave={this.mouseLeave}
/>
</div>
);
}
}
Еще одна странность, которую я обнаружил в Stack Blitz, связана с функцией onMouseEnter, она не работает при наведении предназначены. Однако, если я нажму на значок, который он анимирует.
https://stackblitz.com/edit/react-zwlm7m
Я искал решение этой проблемы, но не нашел ничего на S / O, большинство решений относятся к Jquery.