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 EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
jQuery插件开发发送短信倒计时功能代码
May 09 jQuery
jquery实现图片轮播器
May 23 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 jQuery
jquery.pager.js实现分页效果
Jul 29 jQuery
jquery实现手风琴案例
May 04 jQuery
jQuery带控制按钮轮播图插件
Jul 31 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
python爬取淘宝商品销量信息
2018/11/16 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
学年自我鉴定范文
2013/10/01 职场文书
党员承诺书怎么写
2014/05/20 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
党员发展大会主持词
2015/07/03 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js