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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery+pjax简单示例汇总
Apr 21 jQuery
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
jQuery Dom元素操作技巧
Feb 04 jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
jQuery创建折叠式菜单
Jun 15 jQuery
jquery实现购物车基本功能
Oct 25 jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
javascript multibox 全选
2009/03/22 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
护理学中专毕业生求职信
2013/11/11 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
政府法律服务方案
2014/06/14 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
公司放假通知范文
2015/04/14 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
小学体育教学随笔
2015/08/14 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
如何使用SQL Server语句创建表
2022/04/12 SQL Server