<div class="home-page" ref="homeRef" @mousemove="handleMouseMove">
<div class="home-page-img" :style="imgStyle">
<img src="@/assets/img/home.png" alt="" class="responsive-img" />
</div>
</div>
const imgStyle = ref({
transform: 'perspective(1200px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)',
});
const handleMouseMove = (event: MouseEvent) => {
const { clientX, clientY } = event;
const x = (clientX / window.innerWidth - 0.5) * 30;
const y = (clientY / window.innerHeight - 0.5) * -30;
imgStyle.value.transform = `perspective(1200px) rotateX(${y}deg) rotateY(${x}deg) scale3d(1, 1, 1)`;
};
.home-page-img {
width: 100%;
max-width: 800px;
height: auto;
margin: 0 auto;
transition: transform 0.1s;
transform-style: preserve-3d;
perspective: 1200px;
.responsive-img {
width: 100%;
height: auto;
}
}