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 zTree树插件动态加载实例代码
May 11 jQuery
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
JQuery事件委托原理与用法实例分析
May 13 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
jquery简易手风琴插件的封装
Oct 13 jQuery
jquery插件实现悬浮的菜单
Apr 24 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强制类型转换,慎用!
2013/06/06 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
js 事件小结 表格区别
2007/08/13 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
简单的js计算器实现
2016/10/26 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python获取array中指定元素的示例
2019/11/26 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
快速了解Python开发环境Spyder
2020/06/29 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
运动会广播稿500字
2014/01/28 职场文书
电大本科自我鉴定
2014/02/05 职场文书
经营目标管理责任书
2014/07/25 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
食品质检员岗位职责
2015/04/08 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
全新239军机修复记
2022/04/05 无线电
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS