点击旋转&…">
当前位置:首页 > JavaScript

js实现旋转按钮

2026-02-02 16:00:08JavaScript

实现旋转按钮的JavaScript方法

使用CSS动画结合JavaScript触发旋转效果,以下是具体实现方式:

HTML结构

<button id="rotateBtn">点击旋转</button>

CSS样式

#rotateBtn {
  padding: 10px 20px;
  background: #3498db;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.rotate {
  transform: rotate(360deg);
}

JavaScript代码

const button = document.getElementById('rotateBtn');

button.addEventListener('click', () => {
  button.classList.toggle('rotate');

  // 动画结束后移除类名以实现多次旋转
  button.addEventListener('transitionend', () => {
    button.classList.remove('rotate');
  }, { once: true });
});

使用CSS关键帧动画

更流畅的无限旋转效果实现:

CSS新增

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

.spin {
  animation: spinning 2s linear infinite;
}

JavaScript修改

button.addEventListener('click', () => {
  button.classList.toggle('spin');
});

带进度控制的旋转

实现可暂停/继续的旋转效果:

JavaScript代码

let isRotating = false;
let animation;

button.addEventListener('click', () => {
  if (!isRotating) {
    let deg = 0;
    animation = setInterval(() => {
      deg = (deg + 5) % 360;
      button.style.transform = `rotate(${deg}deg)`;
    }, 20);
  } else {
    clearInterval(animation);
  }
  isRotating = !isRotating;
});

使用GSAP库实现高级旋转

安装GSAP后实现弹性旋转效果:

js实现旋转按钮

import { gsap } from "gsap";

button.addEventListener('click', () => {
  gsap.to(button, {
    rotation: 360,
    duration: 1,
    ease: "elastic.out(1, 0.5)"
  });
});

以上方法可根据需求选择使用,CSS transition方案适合简单交互,GSAP方案适合需要复杂动画曲线的场景。

标签: 按钮js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

vue实现按钮

vue实现按钮

Vue 实现按钮的方法 在 Vue 中实现按钮可以通过多种方式,包括使用原生 HTML 按钮、Vue 组件封装或结合 UI 框架(如 Element UI、Vuetify 等)。以下是几种常见的实现方…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…