当前位置: 首页 > news >正文

图片加字,用我最爽

image

添加后的文字可用鼠标拖拽——没这个就成了最不爽了。

HTML+JavaScript:

<html><head><meta charset="UTF-8">
<title>图片加字,用我最爽</title>
<style>
body {display: flex; /* 设置为弹性布局容器 */justify-content: center; /* 主轴(默认水平)居中 */align-items: center; /* 交叉轴(默认竖直)居中 */
}
* { font: 12pt sans-serif; }
img { pointer-events: none; user-select: none; }
button { width: 6em; padding: 8px; font-size: 13pt; }
#file { display: none; }
textarea { line-height: 150%; }
/* p和div都是独占一行的块元素。p的margin-top/bottom默认不为0 */
.draggable {position: absolute; margin: 0; padding: 0;user-select: none; cursor: move;
}
.draggable:active { cursor: none; }
</style></head><body>
<!--在未设置CSS定位和z-index属性的默认情况下,后出现在源码中的元素覆盖先出现的元素-->
<img>
<div style="position:absolute; left:16px; top:16px"><p><input type="file" id="file" accept="image/*"><button onclick="file.click()">打开图片</button></p><p><textarea id="ta_css" spellcheck="false" rows=8 cols=25>left:600px; top:100px;&#13;&#10;color: red;&#13;&#10;font: 16pt sans;&#13;&#10;</textarea></p><p><textarea id="ta_str" spellcheck="false" rows=3 cols=25 placeholder="图片加字,用我最爽"></textarea></p><p><button onclick='add()'>添加文字</button></p><p style="font-size:90%; color:#666">双击鼠标左键隐藏文字</p>
</div>
<script>
let d = document, draggingEle, offsetX, offsetYfunction add () {let e = d.createElement('p')e.style.cssText = ta_css.valuee.textContent = ta_str.value ? ta_str.value : '去马如飞酒力微醒时已暮赏花归'e.classList.add('draggable')e.addEventListener('mousedown', ev =>{let rect = (draggingEle = ev.target).getBoundingClientRect()offsetX = ev.clientX - rect.leftoffsetY = ev.clientY - rect.topev.preventDefault()})e.addEventListener('dblclick', ev =>{ ev.target.style.display = 'none' })d.body.appendChild(e)
}d.addEventListener('mousemove', e =>{if (!draggingEle) returnlet scrollX = window.pageXOffset || d.documentElement.scrollLeft,scrollY = window.pageYOffset || d.documentElement.scrollToplet x = e.clientX - offsetX + scrollX,y = e.clientY - offsetY + scrollYdraggingEle.style.left = x + 'px'draggingEle.style.top = y + 'px'
})d.addEventListener('mouseup', () =>{ draggingEle = undefined })// 防止拖拽时选中文本
d.addEventListener('selectstart', e =>{ if (draggingEle) e.preventDefault() })file.addEventListener('change', f =>{let reader = new FileReader()reader.onload = e =>{ d.querySelectorAll('img')[0].src = e.target.result }if (f.target.files.length) reader.readAsDataURL(f.target.files[0])
})
</script></body></html>
View Code

Python resize随后上传

http://www.gsyq.cn/news/44596.html

相关文章:

  • 英语_中考作文_An Act of Kindness_待读
  • [题解]【MX-S10】梦熊 NOIP 2025 模拟赛 2 FeOI Round 4 T1~T2
  • Window 11 安装wsl
  • 深入解析:达梦数据库TDE透明加密解决方案:构建高安全数据存储体系
  • 现代Web API应用与优化建议
  • 3dgs Scene详解 - 详解
  • 教学视频(1)
  • 游戏编程模式-享元模式(Flyweight) - 指南
  • 002 vue3-admin项目的目录及文件说明之package.json文件
  • 2025年知名的中空板厂家推荐及选购指南
  • 英语_阅读_Comic books_待读
  • 2025年质量好的发热管缩管机厂家选购指南与推荐
  • 2025年热门的防尘式工业型测力称重变送器厂家最新推荐权威榜
  • C++网络编程(十)epoll模型与select的区别 - 实践
  • 2025年质量好的密闭式压滤机高评价厂家推荐榜
  • CentOS 7 环境下 RabbitMQ 的部署与 Web 管理界面基本使用指南 - 详解
  • 2025年比较好的自动化篷布设备行业内口碑厂家排行榜
  • 2025年口碑好的胶辊厂家最新热销排行
  • 2025年口碑好的MMA彩色防滑路面热门厂家推荐榜单
  • 2025年比较好的全纤维台车炉最新TOP厂家排名
  • 2025年质量好的智能无主灯酒店民宿用户好评厂家排行
  • 002 vue3-admin项目的目录及文件说明之package-lock.json文件
  • 2025年比较好的地磅厂家实力及用户口碑排行榜
  • 2025年靠谱的防裂护手霜用户口碑最好的厂家榜
  • 2025年比较好的酒店壁炉TOP品牌厂家排行榜
  • 2025年热门的电动丝杆升降机最新TOP厂家排名
  • CF2164F2 奇怪做法
  • 2025年靠谱的纸箱码垛机TOP品牌厂家排行榜
  • 目前成都低压电缆工厂推荐榜top10
  • 2025年质量好的进口品牌平面铰链行业内知名厂家排行榜