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图片边框border-image的用法
Jun 30 HTML / CSS
css3制作动态进度条以及附加jQuery百分比数字显示
Dec 13 HTML / CSS
CSS3感应鼠标的背景闪烁和图片缩放动画效果
May 14 HTML / CSS
基于CSS3实现立方体自转效果
Mar 01 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
Mar 16 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
Jun 27 HTML / CSS
HTML5 实战PHP之Web页面表单设计
Oct 09 HTML / CSS
html5文字阴影效果text-shadow使用示例
Jul 25 HTML / CSS
html5读取本地文件示例代码
Apr 22 HTML / CSS
amazeui 验证按钮扩展的实现
Aug 21 HTML / CSS
Html5移动端网页端适配(js+rem)
Feb 03 HTML / CSS
HTML 里 img 元素的 src 和 srcset 属性的区别详解
May 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
第七节--类的静态成员
2006/11/16 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
理解javascript回调函数
2014/12/28 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
浅谈python标准库--functools.partial
2019/03/13 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
2014年教师节演讲稿
2014/09/03 职场文书
岳麓书院导游词
2015/02/03 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL