当前位置:首页 > JavaScript

js实现图片翻转

2026-04-04 06:31:22JavaScript

实现图片翻转的JavaScript方法

使用JavaScript实现图片翻转可以通过CSS的transform属性或Canvas的drawImage方法。以下是两种常见方式:

使用CSS和JavaScript控制翻转

通过修改元素的transform样式实现水平或垂直翻转:

// 获取图片元素
const img = document.getElementById('myImage');

// 水平翻转
img.style.transform = 'scaleX(-1)';

// 垂直翻转
img.style.transform = 'scaleY(-1)';

// 同时水平和垂直翻转
img.style.transform = 'scale(-1, -1)';

使用Canvas实现高级翻转

通过Canvas可以更灵活地控制翻转效果,并支持旋转角度:

function flipImage(src, horizontal = true, vertical = false) {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  const img = new Image();

  img.onload = function() {
    canvas.width = img.width;
    canvas.height = img.height;

    // 设置翻转参数
    ctx.scale(
      horizontal ? -1 : 1,
      vertical ? -1 : 1
    );

    // 调整绘制位置
    ctx.drawImage(
      img,
      horizontal ? -img.width : 0,
      vertical ? -img.height : 0
    );

    // 将结果插入DOM
    document.body.appendChild(canvas);
  };

  img.src = src;
}

// 调用示例
flipImage('image.jpg', true, false);

动态切换翻转状态

结合事件监听实现交互式翻转:

js实现图片翻转

const btnFlip = document.getElementById('flipBtn');
const img = document.getElementById('myImage');
let isFlipped = false;

btnFlip.addEventListener('click', () => {
  isFlipped = !isFlipped;
  img.style.transform = isFlipped ? 'scaleX(-1)' : 'scaleX(1)';
});

注意事项

  • CSS翻转性能较好,适合简单场景
  • Canvas方案适合需要后续图像处理的场景
  • 翻转后可能需要调整元素布局以避免位置偏移
  • 对于<img>标签,翻转不会影响原始图片数据

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

相关文章

css3手工制作图片

css3手工制作图片

使用CSS3手工制作图片 CSS3可以通过各种属性如box-shadow、border-radius、gradient等来手工绘制简单的图形或图片效果。以下是几种常见的方法: 绘制圆形 通过bord…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现游标

js实现游标

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