Rumah  >  Artikel  >  hujung hadapan web  >  Cara menggunakan Layui untuk membangunkan fungsi muat naik imej pengisihan seret dan lepas

Cara menggunakan Layui untuk membangunkan fungsi muat naik imej pengisihan seret dan lepas

王林
王林asal
2023-10-26 09:03:40932semak imbas

Cara menggunakan Layui untuk membangunkan fungsi muat naik imej pengisihan seret dan lepas

Cara menggunakan Layui untuk membangunkan fungsi muat naik imej isihan seret dan lepas

Pengenalan:
Dalam era Internet hari ini, muat naik imej telah menjadi salah satu keperluan biasa dalam kehidupan seharian kita. Dalam proses pembangunan sebenar, fungsi pengisihan seret dan lepas bukan sahaja dapat meningkatkan pengalaman pengguna untuk memuat naik imej, tetapi juga menguruskan pengisihan imej dengan berkesan. Layui ialah rangka kerja UI bahagian hadapan yang ringkas dan mudah digunakan berdasarkan Nodejs Ia menyediakan fungsi berkuasa dan gaya yang kaya, dan sangat sesuai untuk membangunkan fungsi muat naik imej seret dan lepas.

Artikel ini akan memperkenalkan cara menggunakan Layui untuk membangunkan fungsi muat naik imej pengisihan seret dan lepas, dan memberikan contoh kod khusus untuk memudahkan aplikasi praktikal.

  1. Persediaan:
    Pertama, kita perlu memastikan fail Layui yang berkaitan telah diperkenalkan. Dalam kod, kita perlu menggunakan dua fail layui.js dan layui.css. Jika fail ini belum diperkenalkan, anda boleh memuat turun dan memperkenalkannya dari laman web rasmi Layui.
  2. Reka letak HTML:
    Seterusnya, kita perlu melaksanakan reka letak HTML dan mencipta kawasan untuk memaparkan imej yang dimuat naik, termasuk div untuk memaparkan senarai imej yang dimuat naik dan kawasan untuk muat naik seret dan lepas.
<div class="upload-container">
  <div class="uploaded-list" id="uploaded-list"></div>
  <div class="drop-area">
    <div class="drop-text">将图片拖拽到此处上传</div>
    <div class="upload-button">点击上传图片</div>
    <input type="file" id="file-input" multiple="multiple" style="display: none;">
  </div>
</div>
  1. Gaya CSS:
    Untuk mencantikkan halaman dan melaksanakan fungsi muat naik seret dan lepas, kita perlu menulis beberapa gaya CSS. Berikut ialah gaya contoh:
.upload-container {
  width: 500px;
  margin: 0 auto;
  padding: 20px;
  box-sizing: border-box;
}

.uploaded-list {
  margin-bottom: 20px;
}

.drop-area {
  border: 1px dashed #ccc;
  height: 200px;
  text-align: center;
  line-height: 200px;
  background: #f7f7f7;
  cursor: pointer;
  position: relative;
}

.drop-text {
  color: #999;
}

.upload-button {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  line-height: 200px;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  display: none;
}

.upload-button:hover {
  background: rgba(0, 0, 0, 0.7);
}
  1. Kod JavaScript:
    Langkah terakhir ialah menulis kod JavaScript, menggunakan modul muat naik Layui dan fungsi seret dan lepas. Berikut ialah contoh kod:
<script>
layui.use('upload', function(){
  var upload = layui.upload;

  //执行实例
  var uploadInst = upload.render({
    elem: '#file-input', //绑定元素
    url: '/upload', //上传接口
    data: {}, //可选项,额外的参数
    multiple: true, //是否允许多文件上传
    done: function(res){
      //上传完毕回调
      console.log(res);
    },
    error: function(){
      //请求异常回调
    }
  });

  //拖拽上传
  var dropArea = document.querySelector('.drop-area');
  var uploadButton = document.querySelector('.upload-button');
  var fileInput = document.querySelector('#file-input');

  dropArea.addEventListener('dragover', function(e) {
    e.preventDefault();
    this.classList.add('highlight');
  });

  dropArea.addEventListener('dragleave', function(e) {
    e.preventDefault();
    this.classList.remove('highlight');
  });

  dropArea.addEventListener('drop', function(e) {
    e.preventDefault();
    this.classList.remove('highlight');
    fileInput.files = e.dataTransfer.files;
    uploadButton.click();
  });

  //显示已上传的图片
  uploadInst.config.done = function(res) {
    var uploadedList = document.querySelector('.uploaded-list');
    var img = document.createElement('img');
    img.src = res.url;
    uploadedList.appendChild(img);
  };
});
</script>

Perihalan kod:

  • Mula-mula, perkenalkan modul muat naik Layui melalui layui.use('upload', function(){...}).
  • Dalam modul muat naik, buat contoh melalui upload.render({...}), dengan elem mewakili elemen terikat, url mewakili antara muka muat naik, data mewakili parameter tambahan dan berbilang mewakili sama ada berbilang muat naik fail dibenarkan.
  • Dalam fungsi panggil balik yang telah selesai, anda boleh mengendalikan logik selepas muat naik selesai. Dalam contoh ini, hasil muat naik dicetak melalui console.log(res).
  • Dalam fungsi muat naik seret dan lepas, dengar peristiwa dragover, dragleave dan drop, masing-masing melaksanakan penukaran gaya apabila menyeret fail ke kawasan muat naik, tetapkan fail yang diseret ke elemen input[type="file"], dan akhirnya panggil uploadButton.click() untuk mencetuskan operasi muat naik.
  • Akhir sekali, paparkan imej yang dimuat naik melalui fungsi uploadInst.config.done. Dalam contoh ini, kami mencipta elemen img dan menetapkan res.url sebagai src untuknya, kemudian menambah elemen itu pada uploadedList.

Ringkasan:
Tidak sukar untuk menggunakan Layui untuk membangunkan fungsi muat naik imej seret dan lepas hanya sediakan reka letak HTML, gaya CSS dan kod JavaScript yang sepadan. Melalui modul muat naik Layui dan fungsi drag-and-drop, kami boleh melaksanakan muat naik drag-and-drop dan memaparkan imej yang dimuat naik dengan mudah. Saya harap perkongsian saya dapat membantu anda, terima kasih kerana membaca!

Atas ialah kandungan terperinci Cara menggunakan Layui untuk membangunkan fungsi muat naik imej pengisihan seret dan lepas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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