1. 程式人生 > >圖片的上傳和裁剪

圖片的上傳和裁剪

ada click delet relative tis hang flow 頁面 url

1.html,我添加了bootstrap模態框

 <li > <span >封面美照*</span><!--<img src="img/signup/u765.png"  class="add1">(可以上傳1張圖片哦~)-->
                      <!-- 裁剪框Modal -->
                      <div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss
="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body">
                                      <
div class="imageBox1"> <div class="thumbBox1"></div> <div class="spinner1" style="display: none">Loading...</div> </div> </div> <div class="modal-footer"> <input type="button" id="btnCrop1" value="裁剪" style="float: right" data-dismiss="modal"> </div> </div> </div> </div> <!-- <div class="imageBox1"> <div class="thumbBox1"></div> <div class="spinner1" style="display: none">Loading...</div> </div> <input type="button" id="btnCrop1" value="裁剪" style="float: right">--> <!-- 裁剪框結束 --> <div class="action1"> <div class="cropped1"> <!--展示圖片--> </div> <!-- accept="image/*;capture=camera" 直接調用相機 accept="image/*" 調用相機 圖片或者相冊--> <!--1張--> <label for="file1" > <img src="img/signup/u749.png" alt="" class="file-img1"> <p>(僅可以上傳1張png/jpg格式的圖片哦~)</p> </label> <input type="file" id="file1" style="float:left" accept="image/*" data-toggle="modal" data-target="#myModal1"> </div> </li> <li > <span>參賽作品*</span> <!-- 裁剪框Modal --> <div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <div class="imageBox2"> <div class="thumbBox2"></div> <div class="spinner2" style="display: none">Loading...</div> </div> </div> <div class="modal-footer"> <input type="button" id="btnCrop2" value="裁剪" style="float: right" data-dismiss="modal" data-toggle="modal" data-target=".bs-example-modal-sm"> </div> </div> </div> </div> <!-- 裁剪框Modal結束 --> <!--<div class="imageBox2"> <div class="thumbBox2"></div> <div class="spinner2" style="display: none">Loading...</div> </div> <input type="button" id="btnCrop2" value="裁剪" style="float: right"> --> <div class="action2"> <div class="cropped2"><!--展示圖片頁面--> </div> <!-- accept="image/*;capture=camera" 直接調用相機 accept="image/*" 調用相機 圖片或者相冊 accept="image/png, image/jpeg, image/gif, image/jpg"--> <!--9張--> <label for="file2" class="label2"> <img src="img/signup/u765.png" alt="" class="file-img2"> <p>(最多上傳9張png/jpg格式的圖片哦~)</p> </label> <input type="file" id="file2" style="float:left" accept="image/png,image/jpg;capture=camera" data-toggle="modal" data-target="#myModal2"> </div> </li>

2.css部分

/*彈出剪裁部分*/
.imageBox1
{
    display:none;
    position: relative;
    height: 20rem;
    width: 20rem;
    border:1px solid #aaa;
    background: #fff;
    overflow: hidden;
    background-repeat: no-repeat;
    cursor:move;
}
/*裁剪按鍵*/
#btnCrop1{
    display:none;
    width:5rem;height:auto;
}
/*input上傳圖片*/
#file1{
   display:none;
}

/*剪裁限制的高寬*/
.imageBox1 .thumbBox1
{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10rem;/*剪裁限制的高寬*/
    height: 10rem;
    margin-top: -5rem;
    margin-left: -5rem;
    box-sizing: border-box;
    border: 1px solid rgb(102, 102, 102);
    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);
    background: none repeat scroll 0% 0% transparent;
}

.imageBox1 .spinner1
{
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    text-align: center;
    line-height: 400px;
    background: rgba(0,0,0,0.7);
}
/*頁面本來展示的圖片*/
.file-img1{
    width: 10rem;
    height: 10rem;
}
/*展示圖片*/
.image1{
   /* margin-top:3rem;*/
    position:relative;
    width: 10rem;/*剪裁限制的高寬*/
    height: 10rem;
}
/*刪除圖片*/
.delete1{
    position:absolute;top:0.2rem;right:0.2rem;
    height:auto;
    width:1.3rem;
    border-radius: 1.3rem;
    background:black;
    opacity: 0.6;
    color: white;
    z-index: 60;
    text-align: center;
}

.action1{
    margin-top:2rem;
}

.action2{
    margin-top:2rem;
}






/*公共的thumbnail框*/
.thumbnail{
    margin-left:0.5rem;
}

label p{
    color: #999999;
    font-size: 1rem;
}

.close{
    font-size: 1rem;
}




/*第二個剪切*/
.imageBox2
{
    display:none;
    position: relative;
    height: 20rem;
    width:20rem;
    border:1px solid #aaa;
    background: #fff;
    overflow: hidden;
    background-repeat: no-repeat;
    cursor:move;
}
#btnCrop2{
    display:none;
    width:5rem;height:auto;
}
#file2{
    display:none;
}
.imageBox2 .thumbBox2
{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10rem;/*剪裁限制的高寬*/
    height: 10rem;
    margin-top: -5rem;
    margin-left: -5rem;
    box-sizing: border-box;
    border: 1px solid rgb(102, 102, 102);
    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);
    background: none repeat scroll 0% 0% transparent;
}

.imageBox2 .spinner2
{
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    text-align: center;
    line-height: 400px;
    background: rgba(0,0,0,0.7);
}

/*頁面本來展示的圖片*/
.file-img2{
    width: 10rem;
    height: 10rem;
}

.image2{
    position:relative;
    width:10rem;
    height:10rem;
}
.delete2{
    position:absolute;top:0.2rem;right:0.2rem;
    height:auto;
    width:1.3rem;
    border-radius: 1.3rem;
    background:black;
/*    background:#4fccb2;*/
    opacity: 0.6;
    color: white;
    z-index: 60;
    text-align: center;
}
.modal-content{
    text-align: center;
}

3.js部分,1張赫9張

    $(window).load(function() {
        function file1(){
            //剪裁框部分隱藏
            $(‘.imageBox1‘).hide();
            $(‘#btnCrop1‘).hide();
            var options = {
                thumbBox: ‘.thumbBox1‘,
                spinner: ‘.spinner1‘,
                imgSrc: ‘avatar.png‘
            };
            var cropper = $(‘.imageBox1‘).cropbox(options);


            $(‘#file1‘).on(‘change‘, function(){
                //點擊上傳文件時候剪裁框部分顯示
                $(‘.imageBox1‘).show();
                $(‘#btnCrop1‘).show();
                var reader = new FileReader();
                reader.onload = function(e) {
                    options.imgSrc = e.target.result;
                    cropper = $(‘.imageBox1‘).cropbox(options);
                };
                reader.readAsDataURL(this.files[0]);
                this.files = [];
            });


            //點擊上剪裁展示在頁面中。限制一張!!
            $(‘#btnCrop1‘).on(‘click‘, function(){
                var img = cropper.getDataURL();
                $(‘.cropped1‘).html(‘<div class="image1 thumbnail col-xs-3">‘+‘<img src="‘+img+‘" class="img1 img-responsive">‘+
                    ‘<div class="delete1">‘+"X"+‘</div>‘+
                    ‘</div>‘);
                $(‘.imageBox1‘).hide();
                $(‘#btnCrop1‘).hide();
              /*  $(‘.file1‘).hide();*/
                $(‘.delete1‘).click(function () {
                    $(this).parent().remove();
                    /*$(‘.file-img1‘).show();*/
                })
            });
        }
        file1();



        function file2(){
            //剪裁框部分隱藏
            $(‘.imageBox2‘).hide();
            $(‘#btnCrop2‘).hide();
            var options = {
                thumbBox: ‘.thumbBox2‘,
                spinner: ‘.spinner2‘,
                imgSrc: ‘../img/signup/u749.png‘
            };
            var cropper = $(‘.imageBox2‘).cropbox(options);

            $(‘#file2‘).on(‘change‘, function(){
                    //點擊上傳文件時候剪裁框部分顯示
                    $(‘.imageBox2‘).show();
                    $(‘#btnCrop2‘).show();
                    var reader = new FileReader();
                    reader.onload = function(e) {
                        options.imgSrc = e.target.result;
                        cropper = $(‘.imageBox2‘).cropbox(options);
                    };
                    reader.readAsDataURL(this.files[0]);
                    this.files = [];


                });






            //點擊上剪裁展示在頁面中。限制9張!!
            $(‘#btnCrop2‘).on(‘click‘, function(){
                var img = cropper.getDataURL();
                var num=$(".img2").length+1;
                if(num>9){
                    $(‘.action2‘).append(‘<div class="modal fade bs-example-modal-sm tishi" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">\n‘ +
                        ‘<div class="modal-dialog modal-sm" role="document">\n‘ +
                        ‘<div class="modal-content ">\n‘ +
                        ‘最多上傳9張png/jpg格式的圖片哦~\n‘ +
                        ‘<div class="modal-header">\n‘ +
                        ‘<button type="button" class="btn btn-info close" data-dismiss="modal" aria-label="Close">\n‘ +
                        ‘<span aria-hidden="true">確定</span>\n‘ +
                        ‘</button>\n‘ +
                        ‘</div>\n‘ +
                        ‘</div>\n‘ +
                        ‘</div>\n‘ +
                        ‘</div>‘);

                }else{
                    $(‘.cropped2‘).append(‘<div class="image2 thumbnail col-xs-4">‘+‘<img src="‘+img+‘" class="img2 img-responsive">‘+
                        ‘<div class="delete2">‘+"X"+‘</div>‘+
                        ‘</div>‘);
                    $(‘.btn-default‘).hide();
                    $(‘.tishi‘).remove();
                    /*console.log( $(‘.img2‘).attr("src"));*/
                }
                $(‘.imageBox2‘).hide();
                $(‘#btnCrop2‘).hide();
                $(‘.delete2‘).click(function () {
                   /* console.log( $(this).parent().find(‘img‘).attr("src"));*/  //輸出獲取的src地址
                    $(this).parent().remove();
                    $(this).parent().find(‘img‘).removeAttr("src");

                })
            });

          /*  點擊input上傳圖片時也要限制
            */


        }
        file2();



    });

技術分享圖片技術分享圖片 技術分享圖片

圖片的上傳和裁剪