HTML5拖放API实现自动生成相框功能


Posted in HTML / CSS onApril 07, 2020

实现功能: 将桌面图片拖入指定地方,生成相框和相关信息。

相框需要自己配置,设置为背景,在CSS中设置。

效果如图:

HTML5拖放API实现自动生成相框功能
HTML5拖放API实现自动生成相框功能

html部分:

<!DOCTYPE html>
<html>

 <head>
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" type="text/css" href="test3.css"/>
  <script type="text/javascript" src="test3.js"></script>
 </head>

 <body>
  <h1 style="text-align: center;">H5拖放API之图片相框效果</h1>
  <hr />
  <div class="box"></>
   请将图片拖放至此处
  </div>
  <div class="box2"></div>
  
 </body>

</html>

CSS部分:

* {
 margin: 0px;
 padding: 0px;
}
.box2 hr {
 border: 3px solid blueviolet;
}
.box {
 width: 240px;
 height: 150px;
 border: 1px dotted red;
 text-align: center;
 margin: 20px auto;
 line-height: 150px;
}
.box2 {
 margin: 20px auto;
 width: 240px;
 padding: 30px;
 border: 3px solid pink ;
 font-size: 13px;

} 
.photoFrame {
 border-top: 15px solid #90EE90;
 border-bottom: 15px solid #90EE90;
 border-left: 15px solid #48D1CC;
 border-right: 15px solid #20B2AA;
 border-style: inset; 
 width: 200px;
 height: 200px;
 background: url(../imgs/ptoto.jpg);
 margin: 10px auto;
 position: relative;
 overflow: hidden;
}
img {
 position: absolute;
 width: 154px;
 height: 141px;
 left: 25px;
 top: 30px;
 right: 30px;
 bottom: 30px;
}
li {
 list-style-type: none;
}

JS部分

window.onload = function() {
 var box2 = document.querySelector(".box2");
 var box = document.querySelector(".box");
 var count = 0;
 function photoFrame() {
  var d1 = document.createElement("div");
  d1.className = "photoFrame";
  d1.style.marginTop = "30px";
  d1.style.marginLeft = "5px";
  var img = document.createElement("img");
  img.src = "";
  count++;
  img.id = 'img' + parseInt(count);
  d1.appendChild(img);
  return d1;
 }
 box.ondragover = function(ev) {
  ev.preventDefault();
 }
 box.ondrop = function(ev) {
  ev.preventDefault();
  var files = ev.dataTransfer.files;
  //获取当前文件的最新修改日期
  var lastModified = files[0].lastModifiedDate;
  //修改当前文件的最新修改日期的描述格式
  var lastModifiedStr = lastModified ? lastModified.toLocaleDateString() + ' ' + lastModified.toLocaleTimeString() : 'n/a';
  //设置图片下方状态信息栏描述内容
  var fileStatus = "<li>1.名称:" + files[0].name + "<br>2.类型:" + files[0].type + "<br>3.大小:" +
   files[0].size + "字节" + "<br>4.修改时间:" + lastModifiedStr + "</li>" + "<hr/>";
  box2.appendChild(photoFrame());
  box2.innerHTML = box2.innerHTML + fileStatus;
  //设置图片路径
  function setPath() {
   var fd = new FileReader();
   if(files[0].type.indexOf('image') != 1) {
    fd.readAsDataURL(files[0]);
    count++;
    var id = "img" + parseInt(count - 1);
    var img = document.getElementById(id);
    fd.onload = function() {
     var img = document.getElementById(id);
     img.src = this.result;
    }
   }
  }
  
  setPath();
 }
}

总结

到此这篇关于HTML5拖放API实现自动生成相框功能的文章就介绍到这了,更多相关html5 拖放API生成相框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3 开发工具收集
Apr 17 HTML / CSS
用纯css3和html制作泡沫对话框实现代码
Mar 21 HTML / CSS
两种CSS3伪类选择器详细介绍
Dec 24 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
Sep 01 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
Jan 04 HTML / CSS
h5实现获取用户地理定位的实例代码
Jul 17 HTML / CSS
LocalStorage记住用户和密码功能
Jul 24 HTML / CSS
使用placeholder属性设置input文本框的提示信息
Feb 19 HTML / CSS
CSS极坐标的实例代码
Jun 03 HTML / CSS
什么是clearfix (一文搞清楚css清除浮动clearfix)
May 21 HTML / CSS
canvas绘制树形结构可视图形的实现
Apr 03 #HTML / CSS
Html5踩坑记之mandMobile使用小记
Apr 02 #HTML / CSS
总结html5自定义属性有哪些
Apr 01 #HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 #HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 #HTML / CSS
详解HTML5常用的语义化标签
Sep 27 #HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
Mar 26 #HTML / CSS
You might like
php 分页原理详解
2009/08/21 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
Python数据结构之Array用法实例
2014/10/09 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
香港士多网上超级市场:Ztore
2021/01/09 全球购物
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
2014年教师节活动总结
2014/08/29 职场文书
户籍证明书标准模板
2014/09/10 职场文书
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技
Golang 切片(Slice)实现增删改查
2022/04/22 Golang