react实现一个css边框图片生成器效果代码
代码语言:html
所属分类:布局界面
代码描述:react实现一个css边框图片生成器效果代码,可自己上传图片生成一个边框图片。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/babel.min.js"></script> <style> @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap"); :root { --base-space: 8px; --color-body: #101820; --color-accent: #f9ea00; --color-main: #fafafa; } *, *::after, *::before { box-sizing: border-box; } body { background-color: var(--color-main); color: var(--color-body); margin: 0; padding: calc(var(--base-space) * 2); font-family: "Montserrat", sans-serif; font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-size: calc(var(--base-space) * 2); } code { font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } p { margin-top: 0; } .display-block { display: block; } .txt-weight-bold { font-weight: 700; } .txt-size-2 { font-size: calc(var(--base-space) * 2); } .txt-size-3 { font-size: calc(var(--base-space) * 3); } .margin-bottom-1 { margin-bottom: var(--base-space); } .margin-bottom-2 { margin-bottom: calc(var(--base-space) * 2); } .margin-bottom-3 { margin-bottom: calc(var(--base-space) * 3); } .margin-bottom-4 { margin-bottom: calc(var(--base-space) * 3); } h1, h2 { margin-bottom: 0.35em; } h1 { font-size: calc(var(--base-space) * 6); font-weight: 700; } h2 { font-size: calc(var(--base-space) * 4); font-weight: 700; } h3 { font-size: calc(var(--base-space) * 2); font-weight: 700; } code { background-color: var(--color-main); display: block; padding: calc(var(--base-space) * 2); white-space: normal; } .App { background-color: white; box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15); border-radius: calc(var(--base-space) * 2); margin: 0 auto; padding: calc(var(--base-space) * 4); display: flex; flex-wrap: wrap; gap: calc(var(--base-space) * 4); } .App__title { text-align: center; flex: 0 0 100%; } .App__column { flex: 1 1 45%; } .Section { margin-bottom: calc(var(--base-space) * 5); } .HandlersWrapper { position: relative; display: table; } .DemoList { display: flex; gap: calc(var(--base-space) * 2); } .DemoList__button { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: none; border: none; padding: 0; } .DemoList__item { flex: 0 1 80px; } .DemoList__thumbnail { display: block; width: 100%; } .DemoText { font-size: 2em; text-align: center; padding: 0.25em; } </style> </head> <body> <div id="app"></div> <script type="module"> import React, { useEffect, useRef, useState } from "https://cdn.skypack.dev/react"; import ReactDOM from "https://cdn.skypack.dev/react-dom"; import { Rnd } from "https://cdn.skypack.dev/react-rnd"; const getImageFromInput = function (input) { if (!input) return; return new Promise((resolve, reject) => { const file = new FileReader(); const img = new Image(); file.onloadend = fileData => { img.onload = () => { resolve(img); }; img.src = fileData.target.result; }; img.onerror = reject; file.onerror = reject; file.readAsDataURL(input); }); }; const HANDLER_STYLE = { display: "flex", alignItems: "center", justifyContent: "center", background: "rgba(0,0,0,0.3)", border: "solid 1px black", opacity: 0.7 }; const Handler = function ({ position, size, onPositionChange, onSizeChange, style = {}, children }) { const handle.........完整代码请登录后点击上方下载按钮下载查看
网友评论0