当前位置:首页 > JavaScript

js实现div旋转

2026-01-30 13:53:38JavaScript

使用 CSS transform 实现旋转

通过修改元素的 transform 属性实现旋转,JavaScript 动态控制旋转角度。

js实现div旋转

const div = document.querySelector('div');
div.style.transform = 'rotate(45deg)'; // 旋转45度

通过动画实现连续旋转

结合 CSS @keyframes 和 JavaScript 触发动画:

js实现div旋转

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
div.style.animation = 'spin 2s linear infinite'; // 持续旋转

动态交互旋转

监听事件(如鼠标移动)动态计算旋转角度:

document.addEventListener('mousemove', (e) => {
  const centerX = div.offsetLeft + div.offsetWidth / 2;
  const centerY = div.offsetTop + div.offsetHeight / 2;
  const angle = Math.atan2(e.clientY - centerY, e.clientX - centerX) * 180 / Math.PI;
  div.style.transform = `rotate(${angle}deg)`;
});

使用 requestAnimationFrame 平滑旋转

逐帧更新旋转角度实现平滑动画:

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

注意事项

  • 旋转中心默认是元素中心,可通过 transform-origin 调整(如 50% 50%)。
  • 性能优化:避免频繁重排,优先使用 CSS 动画或 will-change: transform

标签: jsdiv
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…