`

jquery 本地图片浏览

阅读更多

jquery 本地图片浏览(支持ie7,8)

 

// 本地图片浏览,此插件依赖 JCrop 切图插件
jQuery.fn.extend({
    avatarPreview: function (opts) {
        var _self = this, _this = $(this), _jcrop;
        opts = jQuery.extend({
            imgId: "avatarImg", squareSide: 500, imgType: ["gif", "jpeg", "jpg", "png"], callback: function () {
                return;
            }
        }, opts || {});
        _self.isIE = function () {
            var _ua = navigator.userAgent.toLowerCase();
//            ie6mode = /msie [1-6]\./.test(_ua);
            return /msie/.test(_ua);
        };
        _self.getFileURL = function (fileObj) {
            var url;
            if (_self.isIE()) {
                _self.select();
                _self.blur();
                url = document.selection.createRange().text;
                document.selection.empty();
            } else if (window.createObjectURL != undefined) {
                url = window.createObjectURL(fileObj.files[0])
            }
            else if (window.URL != undefined) {
                url = window.URL.createObjectURL(fileObj.files[0])
            }
            else if (window.webkitURL != undefined) {
                url = window.webkitURL.createObjectURL(fileObj.files[0])
            }
            return url
        };
        _self.uploadJcrop = function (imgObj) {
            imgObj.Jcrop({
                aspectRatio: 1,
                setSelect: [0, 0, 280, 280],
                minSize: [100, 100],
                onSelect: this.onChange,
                onChange: function (coords) {
                    $('#user_crop_x').val(coords.x);
                    $('#user_crop_y').val(coords.y);
                    $('#user_crop_w').val(coords.w);
                    $('#user_crop_h').val(coords.h);

                }
            }, function () {
                return _jcrop = this
            });
        };
        _self.removeOldJcrop = function () {
            if (_jcrop) {
                _jcrop.destroy();
            }
        };
        _this.getStyle = function (obj) {
            if (obj == undefined) return 'height:' + opts.squareSide + 'px;width:' + opts.squareSide + 'px;'
            if (obj.height > obj.width) {
                var imgStyle = 'height:' + opts.squareSide + 'px;width:auto';
            } else {
                var imgStyle = 'width:' + opts.squareSide + 'px;height:auto'
            }
            return imgStyle
        };
        _this.getStyleForIE = function (imgTag, imageUrl) {
            var testDiv = document.createElement("div");
            imgTag.after(testDiv).hide();
            testDiv.style.width = "10px";
            testDiv.style.height = "10px";
            testDiv.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);';
            testDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imageUrl;
            var imgStyle, scaling, height = parseFloat(testDiv.offsetHeight), width = parseFloat(testDiv.offsetWidth);
            if (height > 0 && width > 0) {
                if (width >= height) {
                    imgStyle = 'width:500px; height:' + 500 * height / width + 'px';
                } else {
                    imgStyle = 'height:500px; width:' + 500 * width / height + 'px';
                }
            }
            $(testDiv).remove();
            return imgStyle;
        };
        _this.change(function () {
            if (this.value) {
                if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
                    alert("请选择" + opts.imgType.join("、") + '类型的图片。');
                    this.value = "";
                    return false
                }
                _self.removeOldJcrop();
                var imgTag = $("#" + opts.imgId);
                if (imgTag.length > 0) {
                    var imageUrl = _self.getFileURL(this);
                    if (_self.isIE()) {
                        var _div = $('<div id="ieImg"></div>');
                        _div.attr('style', _this.getStyleForIE(imgTag, imageUrl)).css({"filter": "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src='" + imageUrl + "')"});
                        imgTag.attr('src', '').hide().after(_div);
                        _self.uploadJcrop(_div);
                    } else {
                        $("<img/>").attr("src", imageUrl).load(function () {
                            imgTag.attr('src', imageUrl).attr('style', _this.getStyle(this));
                            _self.uploadJcrop(imgTag);
                        });
                    }
                    opts.callback();
                }
            }
        })
    }
});

 ## IE9
  function  PreviewImg(imgFile){  
   var  oldPreview  =  document.getElementById( "oldPreview" );  
   oldPreview.innerHTML  =  "<img src=\"file:\\\\" + imgFile.value +  "\" /> ";     
  }   
分享到:
评论

相关推荐

    jQuery浏览图片

    这个基础的图片浏览功能可以进一步扩展,比如添加自动播放、指示器、键盘导航等功能,以满足不同项目的需求。通过学习和理解这个例子,你可以更好地掌握jQuery在动态网页中的应用,并为自己的项目增添更多交互性。

    基于jquery的图片浏览插件

    **基于jQuery的图片浏览插件** 在Web开发中,图片展示是常见的需求,尤其是在电子商务、社交媒体和内容分享网站上。为了提升用户体验,开发者通常会使用专门的图片浏览插件来实现这一功能。本文将深入探讨“基于...

    jQuery H5移动端图片预览插件

    在这个背景下,"jQuery H5移动端图片预览插件"应运而生,它旨在解决移动端图片预览的问题,为用户提供流畅、高效且自适应的图片浏览体验。 这款插件主要针对手机和平板等移动设备设计,它能够无缝地集成到你的H5...

    jQuery 浏览图片,背景变暗

    "jQuery 浏览图片,背景变暗"就是这样一个实现方式,它利用jQuery库来动态控制页面元素,使得在点击图片预览时,背景自动变暗。 jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互...

    jquery点击图片放大插件——即插即用.zip

    1. 引入jQuery库:在HTML文件中,你需要引入jQuery库,通常通过CDN链接或本地文件引用。 2. 引入插件:将压缩包中的插件文件(可能是.js格式)引入到HTML页面中。 3. 初始化插件:在JavaScript中,通过调用jQuery...

    jquery实现slide图片浏览

    本教程将深入讲解如何使用jQuery来实现一个基本的slide(幻灯片)图片浏览功能,这对于网站设计和用户体验提升非常重要。下面我们将详细探讨这个主题。 首先,让我们了解幻灯片的基本原理。幻灯片效果通常是通过...

    腾讯jquery图片浏览相册展示代码

    【腾讯jQuery图片浏览相册展示代码】是一种基于JavaScript库jQuery实现的高效、用户友好的图片展示解决方案。腾讯作为中国互联网巨头,在前端开发方面积累了丰富的经验,其提供的此代码旨在为网站提供美观且易于操作...

    kindeditor文本编辑器实例(包含本地图片上传及浏览服务器方法)

    在这个实例中,我们重点关注的是如何在KindEditor中实现本地图片上传以及浏览服务器上的文件。 1. **本地图片上传** 本地图片上传是KindEditor的一个重要特性,它允许用户直接从他们的计算机上选择图片并上传到...

    jQuery手机移动端图片横向滚动效果

    在移动设备上,为了优化...总结,通过上述步骤和方法,我们可以使用jQuery在手机移动端实现图片的横向滚动效果,为用户提供流畅、直观的浏览体验。实践中,可能还需要根据具体需求进行调整和优化,以满足项目的要求。

    基于JQuery的图片放大切换特效

    "基于JQuery的图片放大切换特效"是一种常见的交互设计手法,能够提升网站的视觉吸引力并优化用户的浏览体验。这种特效广泛应用于相册、产品展示等场景,使得用户在点击小图时能以更直观的方式查看大图,同时保持页面...

    jquery图片左右滑动

    总的来说,jQuery图片左右滑动是一个基础且实用的功能,它结合了前端框架的便利性和触控事件的互动性,为用户提供了直观且有趣的浏览体验。开发者可以通过调整代码和样式,轻松地将这个功能融入到各种网页设计中。

    Jquery图片幻灯片展示

    这种效果利用了JavaScript库jQuery的强大功能,为用户提供了一个平滑、交互式的浏览体验。在本篇文章中,我们将深入探讨如何使用jQuery实现图片幻灯片展示,并涉及其自动播放和鼠标悬停切换图片的功能。 首先,我们...

    jquery图片边框阴影浮动.rar

    图片相册是Web开发中常见的功能,尤其在博客、社交媒体和个人网站中非常常见,它能优雅地展示一组图片,使用户易于浏览。 压缩包内的文件“说明.htm”可能包含了项目的详细说明,如如何使用、效果演示、代码解释等...

    jQuery Mobile图片轮转插件Camera1.3.4

    Camera插件是针对HTML5和jQuery Mobile设计的,它充分利用了HTML5的新特性,如Canvas和Audio元素,以及jQuery Mobile的触摸事件和UI设计,为用户带来流畅且美观的图片浏览体验。这个插件不仅适用于手机,也能在桌面...

    jquery图片预览插件.zip

    - **img**:这个文件夹可能包含了用于演示的图片资源,开发者可以替换为自己的图片链接或者本地图片路径。 - **js**:这里存放了插件的主要JavaScript代码,包含了预览、手势识别等功能的实现逻辑。 在实际应用中,...

    jquery点击图片全屏效果

    在实现图片全屏效果时,jQuery的便捷性和灵活性使其成为首选工具。 首先,我们需要在页面中引入jQuery库。这可以通过CDN(内容分发网络)链接或者本地文件引用来完成。例如,可以使用Google的CDN服务: ```html ...

    浏览图片后本地浏览删除图片功能

    标题中的“浏览图片后本地浏览删除图片功能”指的是在用户选择一张或多张图片...在开发时,需要考虑用户体验、性能优化,以及安全性等因素,确保用户能够顺畅地浏览、删除本地图片,并安全地将选中的图片上传到服务器。

    jquery插件制作QQ空间相册浏览功能特效.rar

    QQ空间照片初始化时以缩略图形式显示,点击后进入如图所示的浏览模式,查看大图片,像在本地电脑上查看图片那样。  关于调用的说明:传入自定义的html相册支持左右方向键,支持Esc关闭。另外还可以通过异步返回json...

    jquery图片展示

    **jQuery图片展示插件ColorBox详解** 在网页设计和开发中,图片展示是不可或缺的一部分,尤其是在展示产品细节、用户评论或者艺术作品时。jQuery作为一款强大的JavaScript库,提供了丰富的插件来实现各种复杂的图片...

    实用的jQuery多层图片视觉差互动特效插件

    总的来说,"jquery.parallaxmouse"插件为开发者提供了一种快速、便捷的方式来实现多层图片的视觉差互动效果,不仅提升了网站的美观度,也为用户带来了更具沉浸感的浏览体验。通过熟练掌握和运用这个插件,设计师和...

Global site tag (gtag.js) - Google Analytics