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中的calc函数浅析
Jul 10 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
Sep 11 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
Apr 07 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
Jul 23 HTML / CSS
canvas画布实现手写签名效果的示例代码
Apr 23 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
Jan 21 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 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设计模式 Command(命令模式)
2011/06/26 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
jquery之empty()与remove()区别说明
2010/09/10 Javascript
Seajs的学习笔记
2014/03/04 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
python判断字符串是否纯数字的方法
2014/11/19 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
Python切片工具pillow用法示例
2018/03/30 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
行政助理的职责
2013/11/14 职场文书
写给女朋友的检讨书
2014/01/28 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
同学聚会策划方案
2014/06/06 职场文书
利用python做表格数据处理
2021/04/13 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python