JS预览上传图片发现的问题
前段时间做一个行业站点,其中商铺有一块功能是商铺设置功能,要求是进行版式,企业名称,企业头部LOGO,企业头部背景进行自定义设置。
先看看效果图吧:
机会难得,有点技术亮点,就一下子投入到功能开发中去了。在这一块的功能开发中,自己还是学到些不错的东西,其中一点就是,用户选择上传的图片,如何预览出来呢。网上找了些资料,最终采用如下方法:
function (obj) { //logo上传添加事件 var logoimg = null; if (document.all) {//如果是IE情况下 obj.select(); logoimg = document.selection.createRange().text; //由于是采用滤镜的方式,所以要把图片设置为不可见,在图片外层的DIV上面设置滤镜效果 $(".setup_logo_left img").removeAttr("src"); $(".setup_logo_left img").css("display", "none"); var img = document.getElementById("preview_fake"); img.filters.item( 'DXImageTransform.Microsoft.AlphaImageLoader').src = logoimg; return; } logoimg = obj.files[0].getAsDataURL(); $(".setup_logo_left img").attr("src", logoimg); }
<style type="text/css"> #preview_fake { /* 该对象用户在IE下显示预览图片 这一段样式不能少 */ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); width: 80px; height: 80px; } </style> <div id="preview_fake"> <img height="80" width="80" src="1.gif"> </div>
效果很不错,在IE6,IE7,IE8,FOX,哦还有一个特让人纠结的360都正常显示