博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS让本地图片预览不再难-jquery插件
阅读量:6576 次
发布时间:2019-06-24

本文共 2876 字,大约阅读时间需要 9 分钟。

  hot3.png

功能介绍

图片上传本地预览插件,Chrome, Firefox, IE

插件参数:

        width : 400, //预览宽度        height : 400, //预览高度        previewId : 'picturePreview', //预览DIV ID        type : ['GIF', 'JPEG', 'JPG', 'BMP', 'PNG'] //图片类型

引用方法

$('#uploadfile1').lockPicturePreview();$('#uploadfile2').lockPicturePreview({    width : 300,    height : 300});

HTML:

本地图片上传预览,各个浏览器版本已测

完整代码:

/** * 图片本地预览 * https://github.com/lock-upme/jquery-picture-local-preview * * @author lock */(function($) {	$.fn.lockPicturePreview = function(options) {			var defaults = {				width : 400, //预览宽度				height : 400, //预览高度				previewId : 'picturePreview', //预览DIV ID				type : ['GIF', 'JPEG', 'JPG', 'BMP', 'PNG'] //图片类型		};		var opts = $.extend(defaults, options);		var obj= $(this);		var newPreview = $('#'+opts.previewId);				/**		 * 检测上传类型		 */		var checkPictureType = function(aFiles) {						if (aFiles.length === 0) { return false;  }					var rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;			if (!rFilter.test(aFiles[0].type)) { 				alert("文件类型错误,请上传类型是" + opts.type.join(",") + "格式图片");				return false;			}   			return true;		};				var checkPictureTypeIE = function(aFiles) {			if (!RegExp("\.(" + opts.type.join("|") + ")$", "i").test(aFiles.toUpperCase())) {                alert("文件类型错误,请上传类型是" + opts.type.join(",") + "格式图片");                return false            }			return true;		};				 var loadPictureFile = function () {			 				obj.change( function () { 					if (window.FileReader) { //chrome,firefox,ie9++						var aFiles = document.getElementById(obj.attr('id')).files;													if (!checkPictureType(aFiles)) { return false; }												var oFReader = new window.FileReader();						oFReader.readAsDataURL(aFiles[0]);												oFReader.onload = function (oFREvent) {														newPreview.html('
'); }; } if (navigator.appName === 'Microsoft Internet Explorer') { //ie9-- if (!checkPictureTypeIE(obj.val())) { return false; } obj.select().blur();             var path = document.selection.createRange().text;             newPreview.html(' ').css({              'filter' : "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")",               'width' : opts.width + 'px',               'height' : opts.height + 'px'             }); } });  };    loadPictureFile(); };})(jQuery);

转载于:https://my.oschina.net/lockupme/blog/655131

你可能感兴趣的文章
iOS开发- 打包ipa,让别人设备安装你的App
查看>>
使用 HTML5、CSS3 和 MathML 在 EPUB 3 中制作版式丰富的出版物
查看>>
【VirtualBox】端口转发,ssh
查看>>
POJ1422 Air Raid 【DAG最小路径覆盖】
查看>>
iOS:CocosPods的装配和配置ReactiveCocoa
查看>>
HDU 4747 Mex
查看>>
ios上禁止输入表情
查看>>
git grep简介
查看>>
【转】一个测试工程师的2015总结和2016年小展望
查看>>
一个很好的php分词类库
查看>>
c3p0详细配置
查看>>
设置Ubuntu 10.10版本的软件源
查看>>
BZOJ2648 SJY摆棋子
查看>>
[前端]css前端样式的模块化
查看>>
re正则表达式6_+
查看>>
[android] android消息机制入门
查看>>
每天进步一点达——MySQL——myisampack
查看>>
printk()函数的总结
查看>>
MySQL: ON DUPLICATE KEY UPDATE 用法
查看>>
接口与抽象类的应用(包括各自设计模式)
查看>>