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中Color的一些特性介绍
May 27 HTML / CSS
CSS3的Flexbox布局的简明入门指南
Apr 08 HTML / CSS
CSS3 animation实现简易幻灯片轮播特效
Sep 27 HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
Jun 23 HTML / CSS
HTML5 Canvas绘制五星红旗
May 04 HTML / CSS
Html5实现文件异步上传功能
May 19 HTML / CSS
深入浅析HTML5中的article和section的区别
May 15 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 HTML / CSS
CSS实现切角+边框+投影+内容背景色渐变效果
Nov 01 HTML / CSS
在CSS中使用when/else的方法
Jan 18 HTML / CSS
CSS中float高度塌陷问题的四种解决方案
Apr 18 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
生成sessionid和随机密码的例子
2006/10/09 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
常用PHP框架功能对照表
2014/10/23 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
javascript call和apply方法
2008/11/24 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
python常见的格式化输出小结
2016/12/15 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
区优秀教师事迹材料
2014/02/10 职场文书
《口技》教学反思
2014/02/21 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
关于安全的标语
2014/06/10 职场文书
工程技术员岗位职责
2015/04/11 职场文书
离婚案件上诉状
2015/05/23 职场文书
薪资证明范本
2015/06/19 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
健康教育主题班会
2015/08/14 职场文书