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插件开发发送短信倒计时功能代码
May 09 jQuery
jQuery遮罩层实例讲解
May 11 jQuery
jquery实现图片放大点击切换
Jun 06 jQuery
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 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 什么是PEAR?(第三篇)
2009/03/19 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php源码的使用方法讲解
2019/09/26 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
Script的加载方法小结
2011/01/12 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python Grid使用和布局详解
2018/06/30 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
python内存管理机制原理详解
2019/08/12 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
python try...finally...的实现方法
2020/11/25 Python
六年级数学教学反思
2016/02/16 职场文书
初一数学教学反思
2016/02/17 职场文书