برنامه نویسی

نحوه پیاده سازی Image Drag-and-Drop در React

نحوه پیاده سازی Drag-and-Drop تصویر در React فقط با استفاده از CSS

React به طور گسترده ای برای ساخت UI های تعاملی شناخته شده است. در این آموزش، ما شما را از طریق ایجاد یک ویژگی کشیدن و رها کردن برای تصاویر در React تنها با CSS راهنمایی می کنیم.

مرحله 1: پروژه React خود را راه اندازی کنید

با راه اندازی پروژه React خود شروع کنید. می توانید استفاده کنید create-react-app برای راه اندازی آسان

npx create-react-app drag-and-drop
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 2: به روز رسانی App.js و App.css

بعد، را اصلاح کنید App.js فایل برای ایجاد یک ظرف برای تصویر و عنوان.

import './App.css';

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

export default App;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در App.css، به صفحه استایل دهید:

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

.heading {
  font-size: 32px;
  font-weight: 500;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 3: ایجاد کنید ImageContainer جزء

یک فایل جدید ایجاد کنید ImageContainer.js و یک ظرف اصلی کشیدن و رها کردن را تعریف کنید.

import React from 'react';

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

export default ImageContainer;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این ظرف را در آن استایل کنید ImageContainer.css:

.image-container {
  width: 60%;
  height: 90%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(0, 0, 0, .3);
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 4: قابلیت آپلود تصویر را اضافه کنید

را تقویت کنید ImageContainer با ورودی فایل و دستورالعمل های متنی برای کاربر.

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;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و استایل کنید upload-container:

.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;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 5: پیش نمایش تصویر

مؤلفه را تغییر دهید تا به صورت مشروط تصویر آپلود شده یا ناحیه کشیدن و رها کردن را ارائه دهد.

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" style={{ width: '100%', height: '100%' }} src={url} alt="" />
      ) : (
        <div className="upload-container">
          <input
            type="file"
            className="input-file"
            accept=".png, .jpg, .jpeg"
            onChange={onChange}
          />
          <p>Drag & Drop here</p>
          <p>or <span style={{ color: "blue" }}>Browse</span>p>
        </div>
      )}
    </div>
  );
};

export default ImageContainer;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مرحله 6: برنامه را وارد کرده و اجرا کنید

در نهایت واردات ImageContainer به App.js و برنامه را اجرا کنید

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;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون می توانید برنامه را اجرا کنید و از کدنویسی ویژگی کشیدن و رها کردن تصویر خود با React و CSS لذت ببرید.


این آموزش نحوه راه‌اندازی یک ناحیه کشیدن و رها کردن برای تصاویر با React، استفاده از ورودی فایل و CSS برای استایل‌سازی و مدیریت پیش‌نمایش تصویر را پوشش می‌دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا