jQuery實(shí)現(xiàn)多張圖片上傳預(yù)覽(不經(jīng)過后端處理)
更新時(shí)間:2017年04月29日 10:44:36 作者:15868870855
本篇文章主要介紹了jQuery實(shí)現(xiàn)多張圖片上傳預(yù)覽(不經(jīng)過后端處理)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
效果圖:

圖(1)

圖(2)
代碼如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery圖片上傳預(yù)覽(不經(jīng)過后端處理)</title>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<div>
<img class="ImgPr"/>
<input type="file" class="up" />
</div>
<div>
<img class="ImgPr"/>
<input type="file" class="up" />
</div>
<script>
jQuery.fn.extend({
uploadPreview: function(opts) {
var _self = this,
_this = $(this);
opts = jQuery.extend({
Img: "ImgPr",
Width: 100,
Height: 100,
ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
Callback: function() {}
}, opts || {});
_self.getObjectURL = function(file) {
var url = null;
if (window.createObjectURL != undefined) {
url = window.createObjectURL(file)
} else if (window.URL != undefined) {
url = window.URL.createObjectURL(file)
} else if (window.webkitURL != undefined) {
url = window.webkitURL.createObjectURL(file)
}
return url
};
_this.change(function() {
if (this.value) {
if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
alert("選擇文件錯(cuò)誤,圖片類型必須是" + opts.ImgType.join(",") + "中的一種");
this.value = "";
return false
}
//高版本Jquey使用 if ($.support.leadingWhitespace)
if ($.support.leadingWhitespace) { //低版本jquery中使用$.browser.msie
console.log(_self.getObjectURL(this.files[0]));
try {
_this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
} catch (e) {
var src = "";
var obj = _this.parent('div').find("." + opts.Img);
var div = obj.parent("div")[0];
_self.select();
if (top != self) {
window.parent.document.body.focus()
} else {
_self.blur()
}
src = document.selection.createRange().text;
document.selection.empty();
obj.hide();
obj.parent("div").css({
'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
'width': opts.Width + 'px',
'height': opts.Height + 'px'
});
div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
}
} else {
_this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
}
opts.Callback()
}
})
}
});
$(".up").click(function(){
$(this).uploadPreview({
Img: "ImgPr"
});
})
</script>
</body>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
jquery.validate使用攻略 第五步 正則驗(yàn)證
一些常用的驗(yàn)證腳本2010-07-07
關(guān)于event.cancelBubble和event.stopPropagation()的區(qū)別介紹
cancelBubble用于ie的阻止冒泡事件,event.stopPropagation()用于firefox和chrome等其他瀏覽器的疑惑介紹。2011-12-12
jQuery UI Autocomplete 1.8.16 中文輸入修正代碼
jQuery UI Autocomplete 1.8.16 中文輸入修正代碼,使用jQuery UI Autocomplete的朋友可以參考下2012-04-04
jquery 實(shí)現(xiàn)二級(jí)/三級(jí)/多級(jí)聯(lián)動(dòng)菜單的思路及代碼
jQuery的AJAX功能和asp.net來實(shí)現(xiàn)省市區(qū)的三級(jí)聯(lián)動(dòng)效果,其他二級(jí)、三級(jí)或多級(jí)聯(lián)動(dòng)也可以按照此方法完成,由此需求的朋友可以參考下哈,希望可以幫助到你2013-04-04

