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插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
jQuery日程管理控件glDatePicker用法详解
Mar 29 jQuery
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
如何基于jQuery实现五角星评分
Sep 02 jQuery
jQuery实现动态向上滚动
Dec 21 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之数据库操作详解及乱码解决!
2007/01/02 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
php中socket通信机制实例详解
2015/01/03 PHP
php利用事务处理转账问题
2015/04/22 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python2中的raw_input() 与 input()
2015/06/12 Python
python 对key为时间的dict排序方法
2018/10/17 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
创建Django项目图文实例详解
2019/06/06 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
什么是规则表达式
2012/05/03 面试题
如何清空Session
2015/02/23 面试题
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
安装工程师岗位职责
2015/02/13 职场文书
色戒观后感
2015/06/12 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python