跳转至内容
上海创厦网络科技
IT服务专家
上海创厦网络科技上海创厦网络科技
  • 首页
  • 网站建设
  • IT服务
  • 平面设计
  • 网络工程
  • 首页
  • 网站建设
  • IT服务
  • 平面设计
  • 网络工程

HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)

您在这里:
  1. 首页
  2. HTML5
  3. HTML5…

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

1、form提交

2、flash

3、HTML5

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

效果图1:

效果图2:

由于本地上传实在太快,录了个80M的gif,终于可以看到上传的细节效果了,是不是还是很不错的。

由于代码比较多:

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

HTML代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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; 
} 

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

最后效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Category: HTML5startupplaza2022年5月30日评论

作者: startupplaza

文章导航

历史的文章历史的文章:HTML高亮关键字的实现代码未来的文章未来的文章:HTML5实现QQ聊天气泡效果

Related Posts

使用HTML5捕捉音频与视频信息概述及实例
2022年5月30日
纯HTML5+CSS3制作生日蛋糕代码
2022年5月30日
HTML5地理定位与第三方工具百度地图的应用
2022年5月30日
解决img标签上下出现间隙的方法
2022年5月30日
HTML5-WebSocket实现聊天室示例
2022年5月30日
详解HTML5通讯录获取指定多个人的信息
2022年5月30日

技术探讨

  • 使用HTML5捕捉音频与视频信息概述及实例
  • HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
  • 详解HTML5中的