当前位置:首页 > 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实现图片压缩:

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 实现图片功能

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

相关文章

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind 绑定图片路径 通过 v-bind(或简写为 :)动态绑定图片…

vue实现图片查看

vue实现图片查看

Vue 实现图片查看功能 在 Vue 中实现图片查看功能,可以通过原生实现或使用第三方库。以下是几种常见的方法: 原生实现方式 使用 Vue 的指令和事件绑定实现基础的图片查看功能。 <te…

h5能实现的功能

h5能实现的功能

H5能实现的功能 H5(HTML5)是一种现代的网页技术标准,具备丰富的功能和特性,适用于多种场景。以下是H5能够实现的主要功能: 多媒体支持 H5原生支持音频和视频播放,无需依赖Flash等插件…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src…

vue功能实现难点

vue功能实现难点

Vue 功能实现的常见难点 响应式系统深度监听 Vue 的响应式系统基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3),但对嵌套对象或数组的深层属性变化需要额外…

vue图片实现多选

vue图片实现多选

Vue 图片多选实现方法 在 Vue 中实现图片多选功能可以通过以下几种方式完成,具体取决于项目需求和复杂度。 使用 v-model 和数组存储选中状态 通过 v-model 绑定一个数组来记录选中…