H5移動端實現仿QQ空間照片上傳效果程式碼
阿新 • • 發佈:2019-01-09
//獲取檔案url
function createObjectURL(blob){
if (window.URL){
return window.URL.createObjectURL(blob);
} else if (window.webkitURL){
return window.webkitURL.createObjectURL(blob);
} else {
return null;
}
}
var box = $("#fileBox .review-box"); //顯示圖片box
var file = $("#file"); //file物件
var domFragment = document.createDocumentFragment(); //文件流優化多次改動dom
$("#fileBox" ).on("click", ".file-btn",function(){
var index = $(this).parent().index();
if(index == 6){
alert("最多可以上傳4張圖片!");
return false;
}
});
//觸發選中檔案事件
$("#fileBox" ).on("change", ".file-btn", function(event){
var imgNum = parseInt($("#fileBox .review-box img").length);
if(imgNum < 4){
var file = event.target.files; //獲取選中的檔案物件
var imgTag = $("<img src=''/>");
var fileName = file[0].name; //獲取當前檔案的檔名
var url = createObjectURL(file[0]); //獲取當前檔案物件的URL
//忽略大小寫
var jpg = (fileName.indexOf(".jpg") > -1) || (fileName.toLowerCase().indexOf(".jpg") > -1);
var png = (fileName.indexOf(".png") > -1) || (fileName.toLowerCase().indexOf(".png") > -1);
var jpeg = (fileName.indexOf(".jpeg") > -1) || (fileName.toLowerCase().indexOf(".jpeg") > -1);
//判斷檔案是否是圖片型別
if(jpg || png || jpeg){
imgTag.attr("src",url);
}else{
alert("請選擇圖片型別檔案!");
}
//最佳顯示
var imgbox = $("<div class='prev-item'><span class='closebtn'>×</span></div>");
imgbox.append(imgTag);
box.append(imgbox);
event.target.parentNode.style.display = "none";
var cloneDom = $(".clone-dom").eq(0).clone().removeAttr("style");
$("#fileBox").append(cloneDom);
}
});
$(".review-box").on("click", ".prev-item", function(){
var index = $(this).index();
$(this).remove();
$("#fileBox label:eq(" + (index + 1) + ")").remove();
});