当前位置:首页 > JavaScript

js 实现图片功能

2026-03-01 04:30:00JavaScript

图片加载与显示

使用<img>标签动态加载图片,通过JavaScript设置src属性:

const img = document.createElement('img');
img.src = 'path/to/image.jpg';
document.body.appendChild(img);

监听图片加载完成事件:

img.onload = function() {
  console.log('图片加载完成');
};

图片懒加载

通过IntersectionObserver实现懒加载:

const lazyImages = document.querySelectorAll('img[data-src]');
const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      const img = entry.target;
      img.src = img.dataset.src;
      observer.unobserve(img);
    }
  });
});
lazyImages.forEach(img => observer.observe(img));

图片预览与放大

使用CSS transform实现点击放大效果:

document.querySelectorAll('.preview-img').forEach(img => {
  img.addEventListener('click', () => {
    img.style.transform = img.style.transform === 'scale(2)' ? 'scale(1)' : 'scale(2)';
  });
});

图片裁剪与编辑

使用Canvas API进行图片裁剪:

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const img = new Image();
img.onload = function() {
  canvas.width = 200;
  canvas.height = 200;
  ctx.drawImage(img, 0, 0, 200, 200);
  document.body.appendChild(canvas);
};
img.src = 'original.jpg';

图片上传

通过<input type="file">实现图片上传:

const input = document.createElement('input');
input.type = 'file';
input.accept = 'image/*';
input.onchange = function(e) {
  const file = e.target.files[0];
  const reader = new FileReader();
  reader.onload = function(event) {
    const img = new Image();
    img.src = event.target.result;
    document.body.appendChild(img);
  };
  reader.readAsDataURL(file);
};
document.body.appendChild(input);

图片滤镜效果

使用Canvas实现滤镜效果:

function applyFilter(imageData) {
  const data = imageData.data;
  for (let i = 0; i < data.length; i += 4) {
    data[i] = 255 - data[i]; // 红色通道反相
    data[i+1] = 255 - data[i+1]; // 绿色通道反相
    data[i+2] = 255 - data[i+2]; // 蓝色通道反相
  }
  return imageData;
}

图片压缩

使用Canvas实现图片压缩:

js 实现图片功能

function compressImage(img, quality = 0.8) {
  const canvas = document.createElement('canvas');
  canvas.width = img.width;
  canvas.height = img.height;
  const ctx = canvas.getContext('2d');
  ctx.drawImage(img, 0, 0);
  return canvas.toDataURL('image/jpeg', quality);
}

标签: 功能图片
分享给朋友:

相关文章

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

vue实现轨道功能

vue实现轨道功能

Vue 实现轨道功能的方法 轨道功能通常指在界面中实现元素沿特定路径移动的效果,例如进度条、时间轴或动画轨迹。以下是几种常见的实现方式: 使用 CSS 动画与 Vue 结合 通过 Vue 动态绑定样…

vue实现付费功能

vue实现付费功能

Vue 实现付费功能的方法 集成第三方支付平台 选择适合的第三方支付平台(如支付宝、微信支付、Stripe、PayPal等),并按照其文档进行集成。在 Vue 项目中,可以通过引入支付平台的 SDK…

react如何引入图片

react如何引入图片

在React中引入图片的方法 使用import直接引入 将图片文件放在项目src目录下(如src/images),通过ES6的import语法引入: import logo from './…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

jquery图片切换

jquery图片切换

jQuery图片切换的实现方法 通过jQuery实现图片切换功能有多种方式,以下是几种常见的实现方法: 基础淡入淡出效果 $(document).ready(function(){ let…