<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<script type="text/babel">
const { useState } = React;
const [isFlipped, setIsFlipped] = useState(false);
const handleHover = () => {
setIsFlipped(!isFlipped);
<div className='container'>
<h3>React Js Image flip on hover</h3>
className={`flip-image ${isFlipped ? 'flipped' : ''}`}
onMouseEnter={handleHover}
onMouseLeave={handleHover}
<div className="flip-image-inner">
<img src='https://www.sarkarinaukriexams.com/images/editor/1695619083mountains-g2cad05fa6_640.jpg' alt="Front" />
<img src='https://www.sarkarinaukriexams.com/images/editor/1695618999tree-g8d108af7f_640.jpg' alt="Back" />
ReactDOM.render(<App />, document.getElementById("app"));
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
/* Flip Image Container */
transform-style: preserve-3d;
transition: transform 0.5s;
.flip-image.flipped .flip-image-inner {
transform: rotateY(180deg);
backface-visibility: hidden;
transform: rotateY(0deg);
transform: rotateY(180deg);