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


    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31498319

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

    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代码:

    <!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
    {
         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;
         198px;
        height: 112px;
        vertical-align: middle;
    }
    
    #uploadBox  li  .percentage
    {
         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;
         200px;
        background: #000;
        opacity: .5;
    }
    
    .clearfix
    {
        clear: both;
    }

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

    最后效果图:



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





    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    javascript 利用
    javascript 事件委托(代理)
    【风马一族_日常灵感】 弯曲的几何学 曲角
    【风马一族_Python】 安装pip与Numpy
    【风马一族_Python】 更替pip的版本
    【风马一族_Android】Android学习
    气味分享系统
    【风马一族_构思】寻找二点间的最短距离
    【风马一族_Java】使用java,画出任意大小的菱形
    【风马一族_Java】9*9口诀
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4924936.html
Copyright © 2020-2023  润新知