手机端图片预览

公司一个项目手机端要用到图片预览的东西,搞插件又碰到各种问题 搞得脑袋大 恰好公司有个大神 就请教了一番 大神想了个很奇特的办法 –实现前后端分离 即前端只是实现图片预览的效果 而后台依旧用之前的input=file 来实现。
步骤一:
首先 建立一个空的div 用来存储后台要获取的 input file文件 为了不影响页面 设置为不可见

<div id="fileValue" style="display: none;"></div>

二、
HTML结构

">                        <div class="weui-cell__hd"><label for="" class="weui-label">身份证照</label></div>
                            <div class="weui-cell__bd">
                               <div class="weui-uploader__bd id-card">
                                    <ul class="weui_uploader_files preview-list">
                                    </ul>
                                    <div class="weui_uploader_input_wrp weui-uploader__input-box">
                                        <input class="js_file weui-uploader__input" type="button" accept="image/*" multiple="" id="file0" name="file0"></div>
                                    </div>
                                </div>
                            </div>
                        </div>

随便放点样式 请不要介意

<style type="text/css">
            *{list-style: none;}
            .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}
            .idItem .weui-uploader__file{position: relative;}
            .idItem .weui-uploader__file .weui-icon-cancel{position: absolute; right: -10px; top: -5px;}
            .idItem .weui-uploader__bd{overflow: inherit;}
        </style>

三、接下来放重点

<script type="text/javascript">
            //建立一個可存取到該file的url
            function getObjectURL(file) {
                var url = null ;
                if (window.createObjectURL!=undefined) { // basic
                    url = window.createObjectURL(file) ;
                } else if (window.URL!=undefined) { // mozilla(firefox)
                    url = window.URL.createObjectURL(file) ;
                } else if (window.webkitURL!=undefined) { // webkit or chrome
                    url = window.webkitURL.createObjectURL(file) ;
                }
                return url ;
            }

            /*删除*/
            function deleteItem(obj){
                var item = $(obj).parent('li');
                var index = item.index();
                item.remove();
                $("#fileValue input").eq(index).remove();
            }


            /***************************************************/
             var allowTypes = ['image/jpg', 'image/jpeg', 'image/png', 'image/gif'];  
             var maxSize = (1024 * 1024) * 5;  
                // 最大上传图片数量  
                var maxCount = 2;  

            $("#file0").on("click",function () {
                var input = '<input type="file">';
                $("#fileValue").append(input);
                $("#fileValue input").last().click();
            });
            $("#fileValue").on("change","input",function (event) {
                var files = event.target.files;  
                // 如果没有选中文件,直接返回  
                if (files.length === 0) {  
                  return;  
                }  
                for (var i = 0, len = files.length; i < len; i++) {  
                  var file = files[i];  
                  var reader = new FileReader();  
                    // 如果类型不在允许的类型范围内  
                    if (allowTypes.indexOf(file.type) === -1) {  
                     alert('该类型不允许上传');  
                        $(this).val("");
                      return;  
                    }  
                    if (file.size > maxSize) {  
                      alert('图片太大,不允许上传');  
                      $(this).val("");
                      return;  
                    }  
                    if ($('.weui-uploader__file').length >= maxCount) {  
                      alert('最多只能上传' + maxCount + '张图片');  
                      $(this).val("");
                      return;  
                    }  
                }

                $("#fileValue input").each(function(){
                    if(!$(this).val()){
                        $(this).remove();
                    }
                });

                var file = this.files[0];
                var url = getObjectURL(file);

                $(".preview-list").append('<li class="weui-uploader__file" style="background-image: url('+ url+');"><i class="weui-icon-cancel" onclick="deleteItem(this)"></i></li>');
            });
        </script>

我还没完全看懂 容我去理解一边~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值