CSS3中可以使用transform
屬性來實現(xiàn)元素跟隨鼠標(biāo)轉(zhuǎn)動的效果,以下是一個簡單的示例代碼:
HTML部分:
<div id="rotate">我是要跟著鼠標(biāo)轉(zhuǎn)動的元素</div>
CSS部分:
#rotate { position: absolute; transform-origin: center; /* 設(shè)置元素中心點為旋轉(zhuǎn)中心 */ transition: transform 0.3s ease; /* 添加過渡效果,使旋轉(zhuǎn)更加平滑 */ }
JavaScript部分:
var rotate = document.getElementById('rotate'); var mouseX = 0; var mouseY = 0; var angle = 0; var step = 0.1; /* 每次旋轉(zhuǎn)的角度 */ var maxAngle = 360; /* ***大旋轉(zhuǎn)角度 */ rotate.addEventListener('mousemove', function(event) { mouseX = event.clientX; mouseY = event.clientY; angle = Math.atan2(mouseY - rotate.getBoundingClientRect().top, mouseX - rotate.getBoundingClientRect().left) * 180 / Math.PI; /* 計算鼠標(biāo)與元素中心的夾角 */ rotate.style.transform = 'rotate(' + (angle * step) % maxAngle + 'deg)'; /* 應(yīng)用旋轉(zhuǎn)樣式 */ });
在這個示例中,rotate
元素會跟隨鼠標(biāo)的移動而轉(zhuǎn)動。transform-origin
屬性將元素的中心點設(shè)置為旋轉(zhuǎn)中心,transition
屬性則使旋轉(zhuǎn)更加平滑,在JavaScript中,我們通過計算鼠標(biāo)與元素中心的夾角來計算每次旋轉(zhuǎn)的角度,并將其應(yīng)用于元素的transform
屬性。
版權(quán)聲明:除非特別標(biāo)注,否則均為本站原創(chuàng)文章,轉(zhuǎn)載時請以鏈接形式注明文章出處。