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 相关文章推荐
50个强大璀璨的CSS3/JS技术运用实例
Feb 27 HTML / CSS
CSS3结构性伪类选择器九种写法
Apr 18 HTML / CSS
CSS3中:nth-child和:nth-of-type的区别深入理解
Mar 10 HTML / CSS
CSS3打造磨砂玻璃背景效果
Sep 28 HTML / CSS
HTML5是否真的可以取代Flash
Feb 10 HTML / CSS
HTML5 新表单类型示例代码
Mar 20 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
Jun 12 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
Aug 06 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 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 opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
如何用Python合并lmdb文件
2018/07/02 Python
Django模板Templates使用方法详解
2019/07/19 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
圣诞节开幕词
2015/01/29 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
党员转正介绍人意见
2015/06/03 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android