js封面图片上传插件

博客围绕JS图片上传插件展开,虽未给出具体内容,但可知核心是该插件相关信息技术内容。
/**
 * 上传插件
 * @param {Object} op
 */
function UploadCover(op){
	this.cont = document.getElementsByClassName(op.ele);
	this.upSrc = op.src;
	this.formparam = op.formdata;
	this.init();
}

UploadCover.prototype = {
	init: function(){
		var _this = this;
		for(var i = 0,len = this.cont.length; i < len; i++){
			var listEle = this.cont[i],
				dataSrc = listEle.getAttribute('data-src');
			listEle.innerHTML = this.renderHtml(dataSrc);
		}
		$('.J_fileImage').on("change", function(e){
			_this.upload(e,this);
		})
		 /**
	     * 关闭图片
	     */
	    $(document).on('click','.closeImg',function(){
	    	var $par = $(this).parents('.up-img-list');
	    	$par.find('img').attr({
	    		'data-src':'',
	    		'src': ''
	    	});
	    	$par.hide().siblings('.uploadBtn').show();
	    });
	},
	renderHtml: function(src){
		var flag = src ? "display:block" : "display:none",
			flag1 = !src ? "display:block" : "display:none";
		return '<div class="clearx up-img-list" style="'+flag+'">'+
	                '<em class="close closeImg"></em>'+
	                '<div class="up-progress-cont"><p class="progress-text"></p><p class="progress j-up-progress"></p><div class="success-dialog"><em></em><p>上传成功</p></div></div>'+
	                '<img src="'+src+'" data-src="'+src+'" alt="青果双师" class="ques-uu" />'+
	            '</div>'+
	            '<div class="uploadBtn" style="'+flag1+'">'+
                    '<form enctype="multipart/form-data" class="left">'+
                        '<div class="text text_c">'+
                        	'<p class="p1"></p>'+
                        	'<p>点击此处添加封面</p>'+
                        '</div>'+
                        '<input class="file J_fileImage" name="videocover" type="file">'+
                    '</form>'+
                '</div>'+
				'<p class="tipdesc" style="padding-left: 0;">请上传尺寸为:380*230的封面图</p>';
	},
	upload: function(e,context){
		var src, url = window.URL || window.webkitURL || window.mozURL, files = e.target.files,
	        $that    = $(context),
	        formData = new FormData(),
	        file = files[0];
        if (url) {
            src = url.createObjectURL(file);
        } else {
            src = e.target.result;
        }
        $that.parents('.uploadBtn').hide();
        var coverDom = $that.parents('.uploadBtn').siblings('.up-img-list'),
        	$upProgress = coverDom.find('.up-progress-cont'),
        	$progressText = coverDom.find('.progress-text');
        coverDom.show().find('.ques-uu').attr('src',src);
        formData.append(this.formparam, file);
        $upProgress.show();
	    //重置数据
	    $that.val('');
	    //上传
	    var posturl = this.upSrc;
	     $.ajax({
	         url:posturl,
	         type: "POST",
	         cache: false,
	         data: formData,
	         processData: false,
	         contentType:false,
	         xhr: function() { //用以显示上传进度 
	             var xhr = $.ajaxSettings.xhr();
	             if (xhr.upload) {
	                 xhr.upload.addEventListener('progress', function(e) {
	                     var count = Math.floor(e.loaded/e.total*100)+'%';
	                     $upProgress.height(count);
	                     $progressText.html('上传中'+count);
	                 }, false);
	             }
	             return xhr;
	         },
	         success: function (result) {
	             var data = JSON.parse(result);
	             coverDom.find('.success-dialog').show();
	             if(data.code == '10000'){
	                var filepath = data.data.filepath;
	                coverDom.find('.ques-uu').attr('data-src',filepath)
	             }else{
	             	coverDom.find('.success-dialog').find('p').html(data.desc);
	             	setTimeout(function(){
		             	coverDom.hide();
	    				$that.parents('.uploadBtn').show();
		             },300)
	             }
	             setTimeout(function(){
	             	$upProgress.hide();
	             },300)
	         }
	     });
	}
}
.commonUpCover .uploadBtn{width: 380px;height: 230px;border: 1px dashed #999;}
.commonUpCover .uploadBtn1{width:148px;height: 264.8px;}
.commonUpCover .uploadBtn form{width: 100%;font-size: 14px;color: #555;}
.commonUpCover .uploadBtn:hover{background: #f5f5f5;}
.commonUpCover .uploadBtn .p1{background: url(../i/upCover.png);width: 40px;height: 36px;margin: 80px auto 10px;}
.commonUpCover .up-img-list{position: relative;width: 380px;height: 230px;}
.commonUpCover .up-img-list .up-progress-cont{position: absolute;left: 0;bottom: 0;width: 100%;height: 100%;}
.commonUpCover .up-img-list img{width: 100%;height: 100%;}
.commonUpCover .up-img-list .progress{background: rgba(0,0,0,.5);width: 100%;height:100%;position: absolute;bottom: 0;left: 0;}
.commonUpCover .up-img-list .progress-text{position: absolute;left: 0;top: 0;display: flex;justify-content: center;align-items: center;z-index: 99;width: 100%;height: 100%;color: #fff;font-size: 14px;}
.commonUpCover .up-img-list .success-dialog{display: none;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);width: 140px;height: 90px;background:rgba(0,0,0,.6);color: #fff;text-align: center;border-radius: 3px;}
.commonUpCover .up-img-list .success-dialog em{display: block;width: 24px;height: 24px;background: url(https://jicvps.qingguo.com/i/createEvent/up-tip.png);margin: 20px auto 10px;border-radius: 24px;}
.commonUpCover .close{position: absolute;right: 0;top: 0;width: 30px;height: 30px;background: url(../officialLiveManage/i/videoClose.png);cursor: pointer;z-index: 999;}
.add_new_files .cancel{background: #eaeaea;color: #8f8f8f;}
.add_new_files .cancel:hover{color: #000;}
.commonUpCover .tipdesc{color:#ff3333;}
<div class="left commonUpCover" data-src="" style="margin-left: 7px;">
							
</div>
var upcover = new UploadCover({
		ele: "commonUpCover",
		src: 'xxxxxx.php',
		formdata: 'xxxxx'
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值