| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | //**********************图片上传预览插件************************ //说明:图片上传预览插件//上传的时候可以生成固定宽高范围内的等比例缩放图//参数设置://width                     存放图片固定大小容器的宽//height                    存放图片固定大小容器的高//imgDiv                    页面DIV的JQuery的id//imgType                   数组后缀名//**********************图片上传预览插件*************************(function($) {    jQuery.fn.extend({        uploadPreview: function(opts) {            opts = jQuery.extend({                width: 0,                height: 0,                imgDiv: "#imgDiv",                imgType: ["gif", "jpeg", "jpg", "bmp", "png"],                callback: function() { return false; }            }, opts || {});            var _self = this;            var _this = $(this);            var imgDiv = $(opts.imgDiv);            imgDiv.width(opts.width);            imgDiv.height(opts.height);            autoScaling = function() {                if ($.browser.version == "7.0" || $.browser.version == "8.0") imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";                var img_width = imgDiv.width();                var img_height = imgDiv.height();                if (img_width > 0 && img_height > 0) {                    var rate = (opts.width / img_width < opts.height / img_height) ? opts.width / img_width : opts.height / img_height;                    if (rate <= 1) {                        if ($.browser.version == "7.0" || $.browser.version == "8.0") imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";                        imgDiv.width(img_width * rate);                        imgDiv.height(img_height * rate);                    } else {                        imgDiv.width(img_width);                        imgDiv.height(img_height);                    }                    var left = (opts.width - imgDiv.width()) * 0.5;                    var top = (opts.height - imgDiv.height()) * 0.5;                    imgDiv.css({ "margin-left": left, "margin-top": top });                    imgDiv.show();                }            }            _this.change(function() {                if (this.value) {                    if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {                        alert("图片类型必须是" + opts.imgType.join(",") + "中的一种");                        this.value = "";                        return false;                    }                    imgDiv.hide();                    if ($.browser.msie) {                        if ($.browser.version == "6.0") {                            var img = $("<img />");                            imgDiv.replaceWith(img);                            imgDiv = img;                            var image = new Image();                            image.src = "file:///" + this.value;                            imgDiv.attr("src", image.src);                            autoScaling();                        }                        else {                            imgDiv.css({ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image)" });                            imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";                            try {                                imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = this.value;                            } catch (e) {                                alert("无效的图片文件!");                                return;                            }                            setTimeout("autoScaling()", 100);                        }                    }                    else {                        var img = $("<img />");                        imgDiv.replaceWith(img);                        imgDiv = img;                        imgDiv.attr("src", this.files.item(0).getAsDataURL());                        imgDiv.css({ "vertical-align": "middle" });                        setTimeout("autoScaling()", 100);                    }                }            });        }    });})(jQuery);
 |