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 相关文章推荐
Web页面中八种创建多列等高(等高列布局)的实现技术
Dec 24 HTML / CSS
css3 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
CSS3中31种选择器使用方法教程
Dec 05 HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
Jun 20 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
Nov 21 HTML / CSS
HTML5打开本地app应用的方法
Mar 31 HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 HTML / CSS
HTML5中实现拖放效果无须借助javascript
Dec 26 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
Apr 23 HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 HTML / CSS
css3中transform属性实现的4种功能
Aug 07 HTML / CSS
flex弹性布局详解
Mar 20 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 str_pad 函数使用详解
2009/01/13 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
php设计模式小结
2013/02/15 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
php实现等比例压缩图片
2018/07/26 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
python实现简单的socket server实例
2015/04/29 Python
python入门教程 python入门神图一张
2018/03/05 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
关于旷工的检讨书
2014/02/02 职场文书
平安建设实施方案
2014/03/19 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers