当前位置:首页 > jquery

jquery图片旋转

2026-03-16 10:24:57jquery

以下是使用jQuery实现图片旋转的几种方法,包括CSS动画和JavaScript控制:

使用CSS动画实现旋转

通过添加/移除CSS类实现旋转效果,性能较好:

// CSS定义旋转动画
.rotate {
  animation: spin 2s linear infinite;
}
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

// jQuery控制
$('#image').click(function() {
  $(this).toggleClass('rotate');
});

使用jQuery动画旋转

通过动态修改transform属性实现逐步旋转:

let angle = 0;
$('#rotate-btn').click(function() {
  angle += 90;
  $('#image').css('transform', 'rotate(' + angle + 'deg)');
});

实现连续旋转动画

结合jQuery的animate()和step函数实现平滑旋转:

$('#image').hover(
  function() {
    $(this).stop().animate(
      { deg: 360 }, 
      {
        duration: 2000,
        step: function(now) {
          $(this).css('transform', 'rotate(' + now + 'deg)');
        }
      }
    );
  },
  function() {
    $(this).stop();
  }
);

拖拽旋转实现

结合mousemove事件实现拖拽旋转效果:

jquery图片旋转

let isDragging = false;
let startAngle = 0;
let currentAngle = 0;

$('#image').mousedown(function(e) {
  isDragging = true;
  startAngle = getAngle(e.pageX, e.pageY);
});

$(document).mousemove(function(e) {
  if (!isDragging) return;
  const newAngle = getAngle(e.pageX, e.pageY);
  currentAngle += newAngle - startAngle;
  startAngle = newAngle;
  $('#image').css('transform', 'rotate(' + currentAngle + 'deg)');
});

$(document).mouseup(function() {
  isDragging = false;
});

function getAngle(x, y) {
  const rect = $('#image')[0].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;
}

注意事项

  • 现代浏览器推荐使用CSS transforms代替jQuery animate以获得更好性能
  • 对于复杂旋转动画,建议使用GSAP等专业动画库
  • 旋转时注意设置transform-origin属性控制旋转中心点
  • 考虑添加will-change: transform提升动画性能

标签: 图片jquery
分享给朋友:

相关文章

vue实现图片取色

vue实现图片取色

Vue 实现图片取色功能 使用 Canvas API 提取颜色 在 Vue 项目中,可以通过 Canvas API 实现图片取色功能。创建一个组件,利用 ref 获取图片元素并绘制到 Canvas 上…

jquery获取radio选中的值

jquery获取radio选中的值

获取radio选中的值 使用jQuery获取被选中的radio按钮的值可以通过以下几种方法实现: 方法1:使用:checked选择器 var selectedValue = $('input[na…

jquery 图表

jquery 图表

jQuery 图表库推荐 jQuery 本身不直接提供图表功能,但可以通过插件或集成其他库实现图表绘制。以下是几种常用的 jQuery 图表解决方案: Chart.js 集成 Chart.js 是一…

jquery 效果

jquery 效果

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。jQuery 提供了丰富的效果(Effects)功能,可以轻松实现元素的动态显…

css jquery

css jquery

CSS 与 jQuery 的基础用法 CSS(层叠样式表)用于控制网页的样式和布局,而 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

jquery菜单

jquery菜单

以下是关于使用jQuery创建交互式菜单的几种常见方法及实现示例: 基础下拉菜单实现 通过jQuery的slideToggle和toggleClass实现简单下拉效果: $('.menu-item…