HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (一)

上传基本是项目中经常出现的,一般采用:

1、form提交 

2、flash

3、HTML5

form提交会刷新页面,很难做到异步上传;flash可能是用得比较多了,因为可以兼顾到几乎所有的浏览器,我之前一直会用jQuery的uploadify作为项目中的上传工具,uploadify也有基于html5好像是收费的,大家可以去官网看看;当然了,现在Html5提供了API以及File,FileReader,XMLHttpRequest等强大的API,为我们拖放实现上传提供了可能。

效果图1:


效果图2:


由于本地上传实在太快,录了个80M的gif,终于可以看到上传的细节效果了,是不是还是很不错的,建议CSDN的博客编辑器也支持下拖拽上传,省的我去找文件了。

由于代码比较多:

这一片主要讲一下HTML和CSS:

HTML代码:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <title></title>  
  5.     <meta charset=“utf-8”/>  
  6.     <link href=“reset.css” type=“text/css” rel=“stylesheet”/>  
  7.     <link href=“01.css” type=“text/css” rel=“stylesheet”/>  
  8.   
  9. </head>  
  10. <body>  
  11.   
  12.   
  13. <div id=“uploadBox”>  
  14.     <ul>  
  15.         <li>  
  16.             <img src=“images/pic1.jpg”/>  
  17.             <span class=“progress”></span>  
  18.             <span class=“percentage”></span>  
  19.         </li>  
  20.   
  21.   
  22.         <li>  
  23.             <img src=“images/pic2.jpg”/>  
  24.             <span class=“progress”></span>  
  25.             <span class=“percentage”>12%</span>  
  26.         </li>  
  27.   
  28.   
  29.         <li class=“done”>  
  30.             <img src=“images/pic2.jpg”/>  
  31.             <span class=“progress”></span>  
  32.             <span class=“percentage”></span>  
  33.         </li>  
  34.   
  35.         <div class=“clearfix”></div>  
  36.     </ul>  
  37.   
  38. </div>  
  39.   
  40. </body>  
  41. </html>  

还是很简洁的:

a、一个div#uploadBox,里面ul li 代表每个上传图片单元

b、li img 图片

c、li span.progress用于显示进度,有种水上涨的效果,从height:0% -100%;

d、li span.percentage 用于在图片中央显示 1% 到100%数字,当到达100%时,显示一个正确的图片


CSS:

  1. body  
  2. {  
  3.     background#eee;  
  4. }  
  5.   
  6. #uploadBox  
  7. {  
  8.     width622px;  
  9.     height362px;  
  10.     background-color#fff;  
  11.     border1px solid #777;  
  12.     margin120px auto;  
  13. }  
  14.   
  15. #uploadBox ul li  
  16. {  
  17.     floatleft;  
  18.     positionrelative;  
  19.     margin-left5px;  
  20.     margin-top5px;  
  21. }  
  22.   
  23. #uploadBox  li img  
  24. {  
  25.     border1px solid #D1D1D1;  
  26.     width198px;  
  27.     height112px;  
  28.     vertical-alignmiddle;  
  29. }  
  30.   
  31. #uploadBox  li  .percentage  
  32. {  
  33.     width69px;  
  34.     height69px;  
  35.     positionabsolute;  
  36.     left: 50%;  
  37.     top: 50%;  
  38.     margin-left-34.5px;  
  39.     margin-top-34.5px;  
  40.     text-aligncenter;  
  41.     font-size18px;  
  42.     line-height69px;  
  43.     color#fff;  
  44.     border-radius: 34.5px;  
  45.     background: rgba(000, .8);  
  46. }  
  47.   
  48. #uploadBox  li.done .percentage  
  49. {  
  50.     backgroundurl(“images/done.png”no-repeat 0 0;  
  51.     text-indent-1000em;  
  52. }  
  53.   
  54. #uploadBox li .progress  
  55. {  
  56.     positionabsolute;  
  57.     height22.4px;  
  58.     bottom: 0px;  
  59.     width200px;  
  60.     background#000;  
  61.     opacity: .5;  
  62. }  
  63.   
  64. .clearfix  
  65. {  
  66.     clearboth;  
  67. }  

都是比较简单的,基本就是定位的简单使用~大家自己看下~

最后效果图:



欢迎大家留言~如果有什么想法,或者好的案例~

下一篇继续:HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)

原文地址:http://blog.csdn.net/lmj623565791/article/details/31498319

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值