jQuery实现多张图片上传预览(不经过后端处理)


Posted in jQuery onApril 29, 2017

效果图:

jQuery实现多张图片上传预览(不经过后端处理)

图(1)

jQuery实现多张图片上传预览(不经过后端处理)

图(2)

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery图片上传预览(不经过后端处理)</title>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style>
</style>
</head>
<body>
<div>
 <img class="ImgPr"/>
 <input type="file" class="up" />
</div>
<div>
 <img class="ImgPr"/>
 <input type="file" class="up" />
</div>
<script>
jQuery.fn.extend({
   uploadPreview: function(opts) {
    var _self = this,
      _this = $(this);
    opts = jQuery.extend({
     Img: "ImgPr",
     Width: 100,
     Height: 100,
     ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
     Callback: function() {}
    }, opts || {});
    _self.getObjectURL = function(file) {
     var url = null;
     if (window.createObjectURL != undefined) {
      url = window.createObjectURL(file)
     } else if (window.URL != undefined) {
      url = window.URL.createObjectURL(file)
     } else if (window.webkitURL != undefined) {
      url = window.webkitURL.createObjectURL(file)
     }
     return url
    };
    _this.change(function() {
     if (this.value) {
      if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
       alert("选择文件错误,图片类型必须是" + opts.ImgType.join(",") + "中的一种");
       this.value = "";
       return false
      }
      //高版本Jquey使用 if ($.support.leadingWhitespace)
      if ($.support.leadingWhitespace) { //低版本jquery中使用$.browser.msie

       console.log(_self.getObjectURL(this.files[0]));
       try {
        _this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]));
       } catch (e) {
        var src = "";
        var obj = _this.parent('div').find("." + opts.Img);
        var div = obj.parent("div")[0];
        _self.select();
        if (top != self) {
         window.parent.document.body.focus()
        } else {
         _self.blur()
        }
        src = document.selection.createRange().text;
        document.selection.empty();
        obj.hide();
        obj.parent("div").css({
         'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
         'width': opts.Width + 'px',
         'height': opts.Height + 'px'
        });
        div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
       }
      } else {
       _this.parent('div').find("." + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
      }
      opts.Callback()
     }
    })
   }
  });
  $(".up").click(function(){
   $(this).uploadPreview({
    Img: "ImgPr"
   });
  })

</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

jQuery 相关文章推荐
jquery.form.js异步提交表单详解
Apr 25 jQuery
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jquery版轮播图效果和extend扩展
Jul 18 jQuery
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jQuery中库的引用方法
Jan 06 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery实现轮播图源码
Oct 23 jQuery
Jquery Fade用法详解
Nov 06 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 #jQuery
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 #jQuery
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 #jQuery
jquery实现图片上传前本地预览
Apr 28 #jQuery
jQuery实现jQuery-form.js实现异步上传文件
Apr 28 #jQuery
jQuery tip提示插件(实例分享)
Apr 28 #jQuery
jQuery自定义元素右键点击事件(实现案例)
Apr 28 #jQuery
You might like
PHP 函数学习简单小结
2010/07/08 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
Python换行与不换行的输出实例
2020/02/19 Python
python中pop()函数的语法与实例
2020/12/01 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
c语言常见笔试题总结
2016/09/05 面试题
extern在函数声明中是什么意思
2014/01/19 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
环境科学毕业生自荐信
2013/11/21 职场文书
教育专业个人求职信
2013/12/02 职场文书
音乐教师求职信
2014/06/28 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
催款函范文
2015/06/24 职场文书
贷款担保书范本
2015/09/22 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
Python中使用subprocess库创建附加进程
2021/05/11 Python
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang