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 29 jQuery
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
如何基于jQuery实现五角星评分
Sep 02 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 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的无刷新操作实现方法分析
2020/02/28 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
对Python _取log的几种方式小结
2019/07/25 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
Linux文件系统类型
2012/02/15 面试题
护士个人简历自荐信
2013/10/18 职场文书
教师旷工检讨书
2014/01/18 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
工人先锋号申报材料
2014/12/29 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python