Rumah > hujung hadapan web > tutorial js > Cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi pemangkasan dan zum imej lanjutan

Cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi pemangkasan dan zum imej lanjutan

WBOY
Lepaskan: 2023-10-27 15:34:53
asal
1043 orang telah melayarinya

Cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi pemangkasan dan zum imej lanjutan

Cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi lanjutan pemangkasan dan penskalaan imej

Pengenalan:
Dengan perkembangan Internet, aplikasi imej menjadi semakin biasa, dan pemangkasan dan penskalaan imej adalah satu keperluan bersama. Artikel ini akan memperkenalkan cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi lanjutan pemangkasan dan penskalaan imej, serta memberikan anda contoh kod khusus.

1. Prinsip reka bentuk:
Sebelum kita mula menulis kod, kita perlu memahami beberapa prinsip reka bentuk. Fungsi lanjutan pemangkasan gambar dan zum terutamanya merangkumi aspek berikut:

  1. Pemilihan gambar: Pengguna boleh memilih gambar yang perlu dipangkas dan diskalakan dengan mengklik butang atau menyeret gambar ke kawasan yang ditetapkan
  2. Pemotongan gambar : Pengguna boleh menyeret gambar dengan tetikus Seret untuk memilih kawasan yang perlu dipangkas
  3. Zum gambar: Pengguna boleh mengezum gambar dengan meluncurkan peluncur atau memasukkan nilai tertentu
  4. Penyimpanan gambar: Pengguna boleh klik butang simpan untuk menyimpan gambar yang dipangkas dan dizum secara setempat atau muat naik ke pelayan.

2 struktur HTML:
Berikut ialah struktur HTML yang diperlukan untuk melaksanakan fungsi pemangkasan dan zum imej:

<div id="image-container">
  <input type="file" id="image-upload" accept="image/*">
  <div class="image-preview"></div>
  <button id="btn-crop">裁剪</button>
  <button id="btn-zoom-in">放大</button>
  <button id="btn-zoom-out">缩小</button>
  <button id="btn-save">保存</button>
</div>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan tag <div> sebagai bekas imej, melalui Teg <input> melaksanakan fungsi pemilihan imej, teg <div> digunakan untuk memaparkan imej yang dipilih dan &lt teg ;button> digunakan untuk memaparkan imej yang dipilih. Laksanakan fungsi pemangkasan, zum dan menyimpan. <div>标签作为图片容器,通过<input>标签实现图片的选择功能,<div>标签用于显示选择的图片,通过<button>标签实现裁剪、缩放和保存功能。

三、CSS样式:
以下是实现图片裁剪缩放功能所需的CSS样式:

#image-container {
  position: relative;
  width: 400px;
  height: 300px;
  border: 1px solid #ccc;
  overflow: hidden;
}

.image-preview {
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

#btn-crop,
#btn-zoom-in,
#btn-zoom-out,
#btn-save {
  display: block;
  margin: 10px 0;
}

#btn-crop,
#btn-save {
  width: 100%;
}
Salin selepas log masuk

在上述代码中,我们使用了一些基本样式,如设置容器的宽高、边框以及图片预览的样式等。

四、JavaScript代码:
以下是实现图片裁剪缩放功能所需的JavaScript代码:

$(document).ready(function() {
  // 图片选择
  $('#image-upload').change(function(e) {
    var file = e.target.files[0];
    var reader = new FileReader();
    reader.onload = function(e) {
      $('.image-preview').css('background-image', 'url(' + e.target.result + ')');
    }
    reader.readAsDataURL(file);
  });

  // 图片裁剪
  var crop = false;
  var startX, startY;

  $('.image-preview').mousedown(function(e) {
    crop = true;
    startX = e.pageX - $(this).offset().left;
    startY = e.pageY - $(this).offset().top;
  });

  $('.image-preview').mousemove(function(e) {
    if (crop) {
      var width = e.pageX - $(this).offset().left - startX;
      var height = e.pageY - $(this).offset().top - startY;
      $(this).css('background-position', -startX + 'px ' + -startY + 'px');
      $(this).css('background-size', (width + 'px') + ' ' + (height + 'px'));
    }
  });

  $(window).mouseup(function() {
    crop = false;
  });

  // 图片缩放
  var zoom = 1;

  $('#btn-zoom-in').click(function() {
    zoom += 0.1;
    $('.image-preview').css('transform', 'scale(' + zoom + ')');
  });

  $('#btn-zoom-out').click(function() {
    zoom -= 0.1;
    $('.image-preview').css('transform', 'scale(' + zoom + ')');
  });

  // 图片保存
  $('#btn-save').click(function() {
    var canvas = document.createElement('canvas');
    var context = canvas.getContext('2d');
    var img = new Image();
    img.src = $('.image-preview').css('background-image').slice(5, -2);
    img.onload = function() {
      canvas.width = img.width;
      canvas.height = img.height;
      context.drawImage(img, 0, 0);
      var dataURL = canvas.toDataURL('image/png');
      window.open(dataURL);
    }
  });
});
Salin selepas log masuk

在上述代码中,我们使用了jQuery来实现图片的选择、裁剪、缩放和保存功能。通过change事件监听输入框的变化获取选择的图片,使用mousedownmousemovemouseup

3. Gaya CSS:

Berikut ialah gaya CSS yang diperlukan untuk melaksanakan fungsi pemangkasan dan zum imej:
rrreee

Dalam kod di atas, kami menggunakan beberapa gaya asas, seperti menetapkan lebar dan ketinggian bekas, sempadan, dan gaya pratonton imej, dsb. 🎜🎜4. Kod JavaScript: 🎜Berikut ialah kod JavaScript yang diperlukan untuk melaksanakan fungsi pemangkasan dan pembesaran imej: 🎜rrreee🎜Dalam kod di atas, kami menggunakan jQuery untuk melaksanakan fungsi pemilihan, pemangkasan, penskalaan dan penjimatan imej. Gunakan acara change untuk memantau perubahan dalam kotak input untuk mendapatkan imej yang dipilih dan gunakan mousedown, mousemove dan mouseup acara untuk melaksanakan fungsi Pemotongan imej, klik butang zum masuk dan keluar untuk merealisasikan fungsi zum gambar, klik butang simpan untuk menyimpan gambar yang dipangkas dan dizum secara setempat. 🎜🎜Ringkasan: 🎜Artikel ini memperkenalkan cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi lanjutan pemangkasan dan penskalaan imej. Pemprosesan tersuai imej boleh dicapai melalui pemilihan, pemangkasan, zum dan fungsi menyimpan. Saya harap artikel ini dapat membantu anda dan membolehkan anda menggunakan fungsi ini dengan lebih baik dalam projek sebenar. 🎜

Atas ialah kandungan terperinci Cara menggunakan HTML, CSS dan jQuery untuk melaksanakan fungsi pemangkasan dan zum imej lanjutan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan