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制作简单的3d半透明立方体图片展示
Mar 25 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
Mar 29 HTML / CSS
基于CSS3 animation动画属性实现轮播图效果
Sep 12 HTML / CSS
CSS3 实现穿梭星空动画
Nov 13 HTML / CSS
使用CSS3制作版头动画效果
Dec 24 HTML / CSS
html5图片上传预览示例分享
Apr 14 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
html5 http的轮询和Websocket原理
Oct 19 HTML / CSS
记一次高分屏下canvas模糊问题
Feb 17 HTML / CSS
纯CSS实现酷炫的霓虹灯效果
Apr 13 HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 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 模拟POST|GET操作实现代码
2010/07/20 PHP
php加密解密实用类分享
2014/01/07 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
如何在PHP中使用数组
2020/06/09 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
js的2种继承方式详解
2014/03/04 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
jQuery中map函数的两种方式
2017/04/07 jQuery
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
python爬取音频下载的示例代码
2020/10/19 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
求职信模板
2014/05/23 职场文书
查摆剖析材料范文
2014/09/30 职场文书
学生检讨书范文
2015/01/27 职场文书
单身申明具结书
2015/02/26 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python