HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)


Posted in HTML / CSS onJanuary 05, 2017

上传基本是项目中经常出现的,一般采用:

1、form提交

2、flash

3、HTML5

form提交会刷新页面,很难做到异步上传;flash可能是用得比较多了,因为可以兼顾到几乎所有的浏览器,我之前一直会用jQuery的uploadify作为项目中的上传工具,uploadify也有基于Html5好像是收费的,大家可以去官网看看;当然了,现在html5提供了API以及File,FileReader,XMLHttpRequest等强大的API,为我们拖放实现上传提供了可能。

效果图1:

HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)

效果图2:

HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)

由于本地上传实在太快,录了个80M的gif,终于可以看到上传的细节效果了,是不是还是很不错的。

由于代码比较多:

这一片主要讲一下HTML和CSS:

HTML代码:

<!DOCTYPE html>  
<html>  
<head>  
    <title></title>  
    <meta charset="utf-8"/>  
    <link href="reset.css" type="text/css" rel="stylesheet"/>  
    <link href="01.css" type="text/css" rel="stylesheet"/>  
  
</head>  
<body>  
  
  
<div id="uploadBox">  
    <ul>  
        <li>  
            <img src="images/pic1.jpg"/>  
            <span class="progress"></span>  
            <span class="percentage"></span>  
        </li>  
  
  
        <li>  
            <img src="images/pic2.jpg"/>  
            <span class="progress"></span>  
            <span class="percentage">12%</span>  
        </li>  
  
  
        <li class="done">  
            <img src="images/pic2.jpg"/>  
            <span class="progress"></span>  
            <span class="percentage"></span>  
        </li>  
  
        <div class="clearfix"></div>  
    </ul>  
  
</div>  
  
</body>  
</html>

还是很简洁的:

a、一个div#uploadBox,里面ul li 代表每个上传图片单元

b、li img 图片

c、li span.progress用于显示进度,有种水上涨的效果,从height:0% -100%;

d、li span.percentage 用于在图片中央显示 1% 到100%数字,当到达100%时,显示一个正确的图片

CSS:

body  
{  
    background: #eee;  
}  
  
#uploadBox  
{  
    width: 622px;  
    height: 362px;  
    background-color: #fff;  
    border: 1px solid #777;  
    margin: 120px auto;  
}  
  
#uploadBox ul li  
{  
    float: left;  
    position: relative;  
    margin-left: 5px;  
    margin-top: 5px;  
}  
  
#uploadBox  li img  
{  
    border: 1px solid #D1D1D1;  
    width: 198px;  
    height: 112px;  
    vertical-align: middle;  
}  
  
#uploadBox  li  .percentage  
{  
    width: 69px;  
    height: 69px;  
    position: absolute;  
    left: 50%;  
    top: 50%;  
    margin-left: -34.5px;  
    margin-top: -34.5px;  
    text-align: center;  
    font-size: 18px;  
    line-height: 69px;  
    color: #fff;  
    border-radius: 34.5px;  
    background: rgba(0, 0, 0, .8);  
}  
  
#uploadBox  li.done .percentage  
{  
    background: url("images/done.png") no-repeat 0 0;  
    text-indent: -1000em;  
}  
  
#uploadBox li .progress  
{  
    position: absolute;  
    height: 22.4px;  
    bottom: 0px;  
    width: 200px;  
    background: #000;  
    opacity: .5;  
}  
  
.clearfix  
{  
    clear: both;  
}

都是比较简单的,基本就是定位的简单使用~大家自己看下~

最后效果图:

HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
简单掌握CSS3将文字描边及填充文字颜色的方法
Mar 07 HTML / CSS
CSS3 Notes: -webkit-box-reflect实现倒影的实例
Dec 08 HTML / CSS
CSS3模拟动画下拉菜单效果
Apr 12 HTML / CSS
CSS3新增布局之: flex详解
Jun 18 HTML / CSS
html5基础教程常用技巧整理
Aug 20 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
Mar 27 HTML / CSS
用HTML5制作视频拼图的教程
May 13 HTML / CSS
HTML5 3D衣服摇摆动画特效
Mar 17 HTML / CSS
HTML5本地存储和本地数据库实例详解
Sep 05 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
Sep 07 HTML / CSS
HTML5自定义属性的问题分析
Aug 16 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 HTML / CSS
HTML5实现表单自动验证功能实例代码
Jan 11 #HTML / CSS
HTML5 File接口在web页面上使用文件下载
Feb 27 #HTML / CSS
使用phonegap检测网络状态的方法
Mar 30 #HTML / CSS
HTML5文档结构标签
Apr 21 #HTML / CSS
HTML5的文档结构和新增标签完全解析
Apr 21 #HTML / CSS
html5的localstorage详解
May 09 #HTML / CSS
基于HTML5 Canvas 实现弹出框效果
Jun 05 #HTML / CSS
You might like
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
phpStorm2020 注册码
2020/09/17 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
js简单抽奖代码
2015/01/16 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
科级干部考察材料
2014/02/15 职场文书
会计工作能力自我评价
2015/03/05 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书