自定义上传图片样式并实现上传立即展示该图片

最近做了一个H5的手机网站,里面有一个上传图片的功能,首先这个上传图片的样式是自定义,由美工设计的,不是默认的<input type="file" >的样式,然后这个图片前端选择上传后,要立即显示这个图片在页面上。

一、实现自定义上传样式

先上自定义上传控件的HTML代码:

<div class="btnWrap">
    <input class="file" type="file">
    <div class="upload ts"></div>
</div>

自定义上传控件的css代码:

.btnWrap{width: 216px; height: 246px; position: relative;}
.upload{width: 216px; height: 246px; background: url("../img/add.gif") no-repeat; position: absolute;left: 0;top:0;}
.upload.ts{background-size: 216px 246px;}
.file{width: 216px; height: 246px; position: absolute; left: 0;top:0; z-index: 10; opacity: 0}

实现原理总结:

建一个容器 .btnWrap,在容器里面分别新建.file和.upload ,.file和.upload 都相对于.btnWrap定位,然后设置z-index的值,让 .file 的层级在 .upload 之上,然后再把 .file 的opacity设置为0

 

二、js实现上传即展示该图片

 

$(function() {
	$(".file").change(function() {
		var $file = $(this);
		var objUrl = $file[0].files[0];
		//获得一个http格式的url路径:
		var windowURL = window.URL || window.webkitURL;
		//createObjectURL创建一个指向该参数对象(图片)的URL
		var dataURL;
		dataURL = windowURL.createObjectURL(objUrl);
		$(".upload").css("background",'url('+dataURL+')').css("backgroundSize","216px 246px");
	});
});

 

 实现原理总结:

把本地图片路径:"E(盘符):/images/..."转为"http://..."格式路径来进行显示图片

  欢迎加入大前端交流群!群号:277942610,VIP新群

转载于:https://www.cnblogs.com/liumingwang/p/7428707.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 CKEditor 中实现自定义图片上传并获取返回值,需要进行以下步骤: 1. 创建一个实现了 UploadAdapter 接口的自定义上传适配器类,并在其中实现 upload() 方法。在 upload() 方法中,可以使用 AJAX 或其他方式将图片上传至服务器,并返回一个 Promise 对象,该对象的 resolve() 方法中包含一个包含图片 URL 的对象。 ```javascript class MyCustomUploadAdapter { constructor(loader) { this.loader = loader; } upload() { return this.loader.file.then(file => { return new Promise((resolve, reject) => { // 使用 AJAX 将图片上传至服务器 // 并在上传成功后调用 resolve() 方法 // 并将包含图片 URL 的对象作为参数传入 resolve({ default: 'http://example.com/image.jpg' }); }); }); } abort() { // 取消上传 } } ``` 2. 在 CKEditor 的配置文件中,使用 config.filebrowserUploadAdapter 属性将自定义上传适配器类与 CKEditor 关联起来。 ```javascript ClassicEditor.create(document.querySelector('#editor'), { // ... filebrowserUploadAdapter: MyCustomUploadAdapter }).then(editor => { console.log('Editor was initialized', editor); }).catch(error => { console.error(error.stack); }); ``` 3. 在需要使用图片的地方,使用 CKEditor 提供的图片插入功能,插入上传图片即可获取返回值。 ```javascript editor.model.change(writer => { const imageElement = writer.createElement('image', { src: 'http://example.com/image.jpg' }); editor.model.insertContent(imageElement); }); ``` 注意:在实际使用中,需要根据具体的需求和服务器端的实现来进行适配器类的编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值