如何仅使用 CSS 在 React 中实现图像拖放
React 在构建交互式 UI 方面得到了广泛认可。在本教程中,我们将指导您仅使用 CSS 在 React 中创建图像拖放功能。
首先设置您的 React 项目。您可以使用 create-react-app 进行简单设置。
npx create-react-app drag-and-drop
接下来,修改 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; }
创建一个新文件 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); }
通过文件输入和用户文本说明增强 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;
并设置上传容器的样式:
.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; }
修改组件,有条件地渲染上传的图片或拖放区域。
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;
现在您可以运行应用程序并享受使用 React 和 CSS 编写图像拖放功能的乐趣。
本教程介绍了如何使用 React 设置基本的图像拖放区域、利用文件输入和 CSS 进行样式设置以及处理图像预览。
以上是如何在 React 中实现图像拖放的详细内容。更多信息请关注PHP中文网其他相关文章!