-
Notifications
You must be signed in to change notification settings - Fork 6.4k
/
Copy pathuploader.html
98 lines (94 loc) · 5.24 KB
/
uploader.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
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<div class="page">
<div class="page__hd">
<h1 class="page__title">Uploader</h1>
<p id="x123" class="page__desc">
<input class="weui-hidden_abs" readonly style="width: 1px; height: 1px;" aria-labelledby="x123" role="option">
上传组件,一般配合<a class="weui-wa-hotarea link" href="#gallery">组件Gallery</a>来使用。
</p>
</div>
<div class="page__bd">
<div role="dialog" aria-hidden="true" aria-modal="true" class="weui-gallery" id="gallery">
<span role="img" tabindex="0" class="weui-gallery__img" id="galleryImg"></span>
<div class="weui-gallery__opr">
<a role="button" aria-label="删除" href="javascript:" class="weui-gallery__del">
<i class="weui-icon-delete weui-icon_gallery-delete"></i>
</a>
</div>
</div>
<div class="weui-cells weui-cells_form">
<div class="weui-cell weui-cell_uploader">
<div class="weui-cell__bd">
<div class="weui-uploader">
<div class="weui-uploader__hd" role="option" aria-labelledby="js_uploader_title js_a11y_comma js_uploader_current_num js_uploader_unit js_a11y_comma js_uploader_max_tips js_uploader_max_num js_uploader_unit">
<p id="js_uploader_title" class="weui-uploader__title">图片上传</p>
<div class="weui-uploader__info">
<span id="js_uploader_current_num">0</span>/<span id="js_uploader_max_num">2</span>
</div>
<div id="js_uploader_unit" class="weui-hidden_abs">张</div>
<div id="js_uploader_max_tips" class="weui-hidden_abs">可上传</div>
</div>
<div class="weui-uploader__bd">
<ul class="weui-uploader__files" id="uploaderFiles">
<li class="weui-uploader__file" role="img" aria-label="图片标题" title="轻点两下查看大图" tabindex="0" style="background-image: url(./images/pic_160.png);"></li>
<li class="weui-uploader__file" role="img" aria-label="图片标题" title="轻点两下查看大图" tabindex="0" style="background-image: url(./images/pic_160.png);"></li>
<li class="weui-uploader__file" role="img" aria-label="图片标题" title="轻点两下查看大图" tabindex="0" style="background-image: url(./images/pic_160.png);"></li>
<li class="weui-uploader__file weui-uploader__file_status" style="background-image: url(./images/pic_160.png);">
<div role="alert" class="weui-uploader__file-content">
<i role="img" tabindex="0" aria-label="错误" class="weui-icon-warn"></i>
</div>
</li>
<li class="weui-uploader__file weui-uploader__file_status" style="background-image: url(./images/pic_160.png);">
<div role="alert" class="weui-uploader__file-content">50%</div>
</li>
</ul>
<div class="weui-uploader__input-box">
<input id="uploaderInput" class="weui-uploader__input" type="file" accept="image/*" multiple/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
var tmpl = '<li class="weui-uploader__file" role="img" tabindex="0" style="background-image:url(#url#)"></li>',
$gallery = $("#gallery"), $galleryImg = $("#galleryImg"),
$uploaderInput = $("#uploaderInput"),
$uploaderFiles = $("#uploaderFiles")
;
$uploaderInput.on("change", function(e){
var src, url = window.URL || window.webkitURL || window.mozURL, files = e.target.files;
for (var i = 0, len = files.length; i < len; ++i) {
var file = files[i];
if (url) {
src = url.createObjectURL(file);
} else {
src = e.target.result;
}
$uploaderFiles.append($(tmpl.replace('#url#', src)));
}
});
var currentImg;
$uploaderFiles.on("click", "li", function(){
$galleryImg.attr("style", this.getAttribute("style"));
$gallery.attr('aria-hidden','false');
$gallery.attr('aria-modal','true');
$gallery.fadeIn(100);
setTimeout(function(){
$galleryImg.attr("tabindex", '-1').trigger('focus');
},200);
currentImg = this;
});
$gallery.on("click", function(){
$gallery.attr('aria-modal','false');
$gallery.attr('aria-hidden','true');
$gallery.fadeOut(100);
setTimeout(function(){
$galleryImg.removeAttr("tabindex");
},200);
currentImg.focus();
});
});
</script>