如何在预览图像上添加复选框

我在上传前开发了预览多张图片。但现在如果我点击其中一张图片,它应该会在图片上显示一个绿色勾号。


但是当我尝试这样做时,刻度线显示在 div 上而不是图像上。有人可以帮助我吗,因为我是 Rails 的新手。


这是我的html代码。


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  <input type="file" multiple id="gallery-photo-add"><br>

   <label> <div class="gallery">


      <input type="checkbox">

      <span class="caption">

      </span>

    

  </div>

</label>

这是js


$(function() {

    // Multiple images preview in browser

    var imagesPreview = function(input, placeToInsertImagePreview) {


        if (input.files) {

            var filesAmount = input.files.length;


            for (i = 0; i < filesAmount; i++) {

                var reader = new FileReader();


                reader.onload = function(event) {

                    $($.parseHTML('<img>')).attr('src', event.target.result).appendTo(placeToInsertImagePreview);

                }


                reader.readAsDataURL(input.files[i]);

            }

        }


    };


    $('#gallery-photo-add').on('change', function() {

        imagesPreview(this, 'div.gallery');

    });

});

这是CSS


.caption {

  position: absolute;

  top: 0;

  left: 0;

  height: 100%;

  width: 100%;

  padding: 0 10px;


  pointer-events: none;

}



.gallery img {

  display: block;


}


.gallery input {

  display: none;

}

.gallery input:checked + .caption {

  background: rgba(0,0,0,0.5);

}

.gallery input:checked + .caption::after {

  content: '✔';    

  position: absolute;

  top: 50%; left: 50%;

  width: 70px; height: 70px;

  transform: translate(-50%,-50%);

  color: green;

  font-size: 36px;

  line-height: 27px;

  text-align: center;

 }

https://jsfiddle.net/uj8v2kd5/21/


我附上小提琴。当我点击保存按钮时选择图像后,它应该保存在数据库中


胡子哥哥
浏览 150回答 1
1回答

守着星空守着你

更改 Z-Index 可以解决您的问题,如果我理解正确的话,您的勾号将不会显示(图片覆盖了它)。也许像这样尝试:.caption {&nbsp; position: absolute;&nbsp; top: 0;&nbsp; left: 0;&nbsp; height: 100%;&nbsp; width: 100%;&nbsp; padding: 0 10px;&nbsp; pointer-events: none;}.gallery img {&nbsp; display: block;&nbsp; z-index: 1;&nbsp; /* Make sure its lower then the tick one */}.gallery input {&nbsp; display: none;}.gallery input:checked + .caption {&nbsp; background: rgba(0,0,0,0.5);}.gallery input:checked + .caption::after {&nbsp; content: '✔';&nbsp; &nbsp;&nbsp;&nbsp; position: absolute;&nbsp; top: 50%; left: 50%;&nbsp; width: 70px; height: 70px;&nbsp; transform: translate(-50%,-50%);&nbsp; color: green;&nbsp; font-size: 36px;&nbsp; line-height: 27px;&nbsp; text-align: center;&nbsp; z-index: 500;&nbsp; /* Just some high value */&nbsp;}´´´
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript