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美化表单控件全集
Jun 29 HTML / CSS
css3新增颜色表示方式分享
Apr 15 HTML / CSS
纯CSS3实现的8种Loading动画效果
Jul 05 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
HTML5 canvas基本绘图之绘制阴影效果
Jun 27 HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
Jul 09 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
Jul 02 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
Jul 25 HTML / CSS
html2canvas截图空白问题的解决
Mar 24 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
Aug 21 HTML / CSS
Html5大屏数据可视化开发的实现
Jun 11 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 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
基于mysql的论坛(4)
2006/10/09 PHP
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
Javascript 继承实现例子
2009/08/12 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
医校毕业生自我鉴定
2014/01/25 职场文书
法学个人求职信范文
2014/01/27 职场文书
小学生成长感言
2014/01/30 职场文书
静心口服夜广告词
2014/03/20 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
党员自我评价2015
2015/03/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android