当前位置:首页 > JavaScript

js实现div旋转

2026-03-01 04:58:00JavaScript

使用CSS transform 属性旋转div

通过JavaScript动态修改CSS的transform属性,可以实现div旋转效果。核心代码通过设置rotate()函数控制旋转角度,单位可以是deg(度)或rad(弧度)。

const div = document.getElementById('rotateDiv');
let angle = 0;

function rotateDiv() {
  angle += 1;
  div.style.transform = `rotate(${angle}deg)`;
  requestAnimationFrame(rotateDiv);
}

rotateDiv();

通过CSS动画实现旋转

结合CSS的@keyframes和JavaScript触发动画,实现更流畅的旋转效果。CSS部分定义旋转动画,JavaScript控制动画的启停。

js实现div旋转

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.rotate {
  animation: spin 2s linear infinite;
}
const div = document.getElementById('rotateDiv');
div.classList.add('rotate');

// 停止旋转
// div.classList.remove('rotate');

使用setInterval控制旋转速度

通过setInterval定时器精确控制旋转速度和方向。适合需要交互式控制的场景,如根据用户输入调整旋转。

js实现div旋转

const div = document.getElementById('rotateDiv');
let angle = 0;
const speed = 2; // 控制旋转速度

setInterval(() => {
  angle = (angle + speed) % 360;
  div.style.transform = `rotate(${angle}deg)`;
}, 16);

响应鼠标事件的交互旋转

通过监听鼠标事件(如拖拽),将用户操作转换为旋转角度。适合需要用户交互的场景。

const div = document.getElementById('rotateDiv');
let isDragging = false;
let startAngle = 0;
let currentAngle = 0;

div.addEventListener('mousedown', (e) => {
  isDragging = true;
  startAngle = getAngle(e.clientX, e.clientY);
});

document.addEventListener('mousemove', (e) => {
  if (!isDragging) return;
  const angle = getAngle(e.clientX, e.clientY);
  currentAngle += angle - startAngle;
  startAngle = angle;
  div.style.transform = `rotate(${currentAngle}deg)`;
});

document.addEventListener('mouseup', () => {
  isDragging = false;
});

function getAngle(x, y) {
  const rect = div.getBoundingClientRect();
  const centerX = rect.left + rect.width / 2;
  const centerY = rect.top + rect.height / 2;
  return Math.atan2(y - centerY, x - centerX) * 180 / Math.PI;
}

使用GSAP库实现高级动画

通过GSAP等动画库实现复杂旋转效果,如缓动、多轴旋转等。适合需要高级动画控制的场景。

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
const div = document.getElementById('rotateDiv');
gsap.to(div, {
  rotation: 360,
  duration: 2,
  repeat: -1,
  ease: "power1.inOut"
});

标签: jsdiv
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…