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截取字符串实例代码【推荐】
Jun 07 HTML / CSS
css3中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
纯css3实现的竖形无限级导航
Dec 10 HTML / CSS
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
Dec 29 HTML / CSS
浅谈HTML5 defer和async的区别
Jun 07 HTML / CSS
HTML5新表单元素_动力节点Java学院整理
Jul 12 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
Jan 02 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
Aug 26 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
Feb 19 HTML / CSS
Html5页面内使用JSON动画的实现
Jan 29 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 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 随机排序广告的实现代码
2011/05/09 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python实现超市商品销售管理系统
2019/10/25 Python
python元组的概念知识点
2019/11/19 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
C语言编程练习
2012/04/02 面试题
教师自我评价范文
2013/12/16 职场文书
个人年度总结报告
2015/03/09 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题