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 box-shadow阴影(外阴影与外发光)图示讲解
Aug 11 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
CSS3 实现时间轴动画
Nov 25 HTML / CSS
html5的localstorage详解
May 09 HTML / CSS
HTML5 创建canvas元素示例代码
Jun 04 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
浅谈h5自定义audio(问题及解决)
Aug 19 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
Oct 08 HTML / CSS
如何在Canvas中添加事件的方法示例
May 21 HTML / CSS
使用canvas实现黑客帝国数字雨效果
Jan 02 HTML / CSS
H5离线存储Manifest原理及使用
Apr 28 HTML / CSS
Li list-style-image 图片垂直居中实现方法
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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php实现读取超大文件的方法
2014/07/28 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
玩转python爬虫之正则表达式
2016/02/17 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
python面试题小结附答案实例代码
2019/04/11 Python
Python如何绘制日历图和热力图
2020/08/07 Python
英国景点门票网站:attractiontix
2019/08/27 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
C语言笔试集
2012/07/24 面试题
安全横幅标语
2014/06/09 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
企业整改报告范文
2014/11/08 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android