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的Media Queries(跨平台设计)
Jul 27 HTML / CSS
css3圆角样式分享自定义按钮样式
Dec 27 HTML / CSS
纯css3实现照片墙效果
Dec 26 HTML / CSS
使用CSS3来代替JS实现交互
Aug 10 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
Feb 10 HTML / CSS
利用CSS3 动画 绘画 圆形动态时钟
Mar 20 HTML / CSS
canvas学习笔记之绘制简单路径
Jan 28 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
Apr 03 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
Apr 23 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
HTML5中使用json对象的实例代码
Sep 10 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
Apr 14 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
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
jQuery中:animated选择器用法实例
2014/12/29 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
小学班主任寄语大全
2014/04/04 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
浅谈JS的原型和原型链
2021/06/04 Javascript
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
MySql分区类型及创建分区的方法
2022/04/13 MySQL
Spring Boot 实现 WebSocket
2022/04/30 Java/Android