Rumah > hujung hadapan web > tutorial css > Cara Melaksanakan Drag-and-Drop Imej dalam React

Cara Melaksanakan Drag-and-Drop Imej dalam React

Patricia Arquette
Lepaskan: 2025-01-05 00:01:39
asal
810 orang telah melayarinya

How to Implement Image Drag-and-Drop in React

Cara Melaksanakan Seret-dan-Lepaskan Imej dalam Reaksi Hanya Menggunakan CSS

React diiktiraf secara meluas untuk membina UI interaktif. Dalam tutorial ini, kami akan membimbing anda membuat ciri seret dan lepas untuk imej dalam React dengan hanya CSS.

Langkah 1: Sediakan Projek React Anda

Mulakan dengan menyediakan projek React anda. Anda boleh menggunakan create-react-app untuk persediaan yang mudah.

npx create-react-app drag-and-drop
Salin selepas log masuk

Langkah 2: Kemas kini App.js dan App.css

Seterusnya, ubah suai fail App.js untuk mencipta bekas untuk imej dan tajuk.

import './App.css';

function App() {
  return (
    <div className="App">
      <h2 className="heading">Select Image:</h2>
      <div className="image-area"></div>
    </div>
  );
}

export default App;
Salin selepas log masuk

Dalam App.css, gayakan halaman:

.App {
  text-align: center;
  width: 100vw;
  height: 100vh;
}

.heading {
  font-size: 32px;
  font-weight: 500;
}
Salin selepas log masuk

Langkah 3: Cipta Komponen ImageContainer

Buat fail baharu ImageContainer.js dan tentukan bekas seret dan lepas asas.

import React from 'react';

const ImageContainer = () => {
  return (
    <div className="image-container"></div>
  );
};

export default ImageContainer;
Salin selepas log masuk

Gayakan bekas ini dalam ImageContainer.css:

.image-container {
  width: 60%;
  height: 90%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(0, 0, 0, .3);
}
Salin selepas log masuk

Langkah 4: Tambah Fungsi Muat Naik Imej

Tingkatkan ImageContainer dengan input fail dan arahan teks untuk pengguna.

import React from 'react';
import './ImageContainer.css';

const ImageContainer = () => {
  const [url, setUrl] = React.useState('');

  const onChange = (e) => {
    const files = e.target.files;
    if (files.length > 0) {
      setUrl(URL.createObjectURL(files[0]));
    }
  };

  return (
    <div className="image-container">
      <div className="upload-container">
        <input
          type="file"
          className="input-file"
          accept=".png, .jpg, .jpeg"
          onChange={onChange}
        />
        <p>Drag & Drop here</p>
        <p>or</p>
        <p>Click</p>
      </div>
    </div>
  );
};

export default ImageContainer;
Salin selepas log masuk

Dan gayakan bekas muat naik:

.image-container {
  width: 60%;
  height: 90%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(0, 0, 0, .3);
}

.upload-container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: white;
}

.upload-container > p {
  font-size: 18px;
  margin: 4px;
  font-weight: 500;
}

.input-file {
  display: block;
  border: none;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
}
Salin selepas log masuk

Langkah 5: Pratonton Imej

Ubah suai komponen untuk memaparkan secara bersyarat imej yang dimuat naik atau kawasan seret dan lepas.

import React from 'react';
import './ImageContainer.css';

const ImageContainer = () => {
  const [url, setUrl] = React.useState('');

  const onChange = (e) => {
    const files = e.target.files;
    if (files.length > 0) {
      setUrl(URL.createObjectURL(files[0]));
    }
  };

  return (
    <div className="image-container">
      {url ? (
        <img className="image-view">



<h3>
  
  
  Step 6: Import and Run the Application
</h3>

<p>Finally, import ImageContainer into App.js and run the app.<br>
</p>

<pre class="brush:php;toolbar:false">import './App.css';
import ImageContainer from './ImageContainer';

function App() {
  return (
    <div className="App">
      <h2 className="heading">Select Image:</h2>
      <div className="image-area">
        <ImageContainer />
      </div>
    </div>
  );
}

export default App;
Salin selepas log masuk

Kini anda boleh menjalankan apl dan menikmati pengekodan ciri drag-and-drop imej anda dengan React dan CSS.


Tutorial merangkumi cara menyediakan kawasan seret dan lepas asas untuk imej dengan React, menggunakan input fail dan CSS untuk penggayaan dan mengendalikan pratonton imej.

Atas ialah kandungan terperinci Cara Melaksanakan Drag-and-Drop Imej dalam React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan