投稿 搜索

热搜词

热门文章

当前位置: 站长天下 / 图片相册背景 / jQuery图片滚动幻灯片预览大图效果代码
jQuery图片滚动幻灯片预览大图效果代码
标签:

插件介绍

    这是一款jQuery基于bootstrap制作左右按钮控制图片滚动,支持删除图片列表。点击弹出放大图片幻灯片预览效果,预览时可手动删除图片功能。

    浏览器兼容性

    浏览器兼容性
    时间:2018-05-23
    阅读:

jQuery图片滚动幻灯片预览大图效果代码

简要教程

这是一款jQuery基于bootstrap制作左右按钮控制图片滚动,支持删除图片列表。点击弹出放大图片幻灯片预览效果,预览时可手动删除图片功能。

使用方法

在页面引入以下jquery-3.2.1.min.js、slick.js、bootstrap.min.js文件

<script src="lib/jquery-3.2.1.min.js"></script>
<script src="lib/slick/slick.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script>
  var previewLength;
  var imgTempList = [
          "img/118098383748c756e2o.jpg",
          "img/55a09df24b97e_1024.jpg",
          "img/0037037537817495_b.jpg",
          "img/4499633_115051034301_2.jpg",
          "img/10.jpg",
          "img/4afbfbedab64034f57ca4b0ea5c379310a551db6.jpg",
          "img/234970-14061922354979.jpg",
          "img/0010023173266263_b.jpg"
  ];
  
  //初始化
  $(function () {
  
      //图片分页展示
      $('.img-list-slider').slick({
          dots: true,
          slidesToShow: 5,
          slidesToScroll: 5
      });
  
      initEle();
  
      //预览图片
      $('.img-list-slider').on('click','.thumbnail-self .image',function (e) {
          imgEnlarge(e)
      });
  
  
      //图片删除
      $('.img-list-slider').on('click','.thumbnail-self .remove', function (e) {
          imgRemove(e);
      });
  
  
      //预览图片时删除
      $('.modal-show-image ').on('click','.img-modal #img_remove_modal', function () {
          imgRemoveModal();
      })
  
  
  });
  
  //dom初始化
  function initEle() {
      for(var i in imgTempList) {
          var str="", imgTempListValue = imgTempList[i];
          str = '<div class="thumbnail-self">'+
                  '<img class="image" alt="'+imgTempListValue+'"  src="'+imgTempListValue+'" />' +
                  '<p class="remove" data-filename="'+imgTempListValue+'" >'+'X'+'</p>'+
                  '</div>';
  
          $('.img-list-slider').slickAdd(str);
      }
  }
  
  //禁止自动轮播
  function carousel() {
      //禁止自动轮播
      $('.carousel').carousel({
          interval: false
      });
  }
  
  //图片预览放大
  function imgEnlarge(e) {
      carousel();
      //获取图片长度
      previewLength = $('.img-list-slider .thumbnail-self:not(.slick-cloned)').length;
  
      var sourceSrc = "",str = "", sourceSrcArr = [];
      //获取url数组
      $(".img-list-slider .thumbnail-self:not(.slick-cloned) img").each(function() {
          var attrSrc = $(this).attr("src");
          sourceSrcArr.push(attrSrc);
      });
      //获取当前点击的元素url
      sourceSrc = $(e.target).attr('src');
  
      //当前url在数组中位置
      var index = sourceSrcArr.indexOf(sourceSrc);
      if (index > -1) {
          for(var i in sourceSrcArr) {
              if(i == index) {
                  str = '<div class="item active">'+
                          '<img src="'+sourceSrcArr[i]+'" class="img-self">'+
                          '</div>';
              }else {
                  str = '<div class="item">'+
                          '<img src="'+sourceSrcArr[i]+'" class="img-self">'+
                          '</div>';
              }
              $(".carousel-inner-stand").append(str);
          }
      }
  
      $("#show_image").modal('show');
  
      //弹窗关闭清空数组
      var self = this;
      $('#show_image').on('hide.bs.modal', function () {
          $(".carousel-inner-stand").empty();
  
      });
  
  }
  
  //缩略图右上方按钮删除
  function imgRemove(e) {
      var imgIndex = imgTempList.indexOf(e.target.dataset.filename);
      imgTempList.splice(imgIndex,1);
      $('.img-list-slider').slickRemove(imgIndex);
      console.log(imgTempList);
  }
  
  //预览图片时删除
  function imgRemoveModal() {
      if($('.carousel-inner-stand .item').hasClass('active')){
          var nextElement = $('.active').next();
          if(nextElement.length != 0) {
              nextElement.addClass('active');
              var activeFirst = $('.carousel-inner-stand .active:first');
              var activeFirstImg = activeFirst.find('img').attr('src');
  
              modalRemove(activeFirstImg,activeFirst);
  
          }else {
              $('.carousel-inner-stand .item:first').addClass('active');
              var activeLast = $('.carousel-inner-stand .active:last');
              var activeLastImg = activeLast.find('img').attr('src');
              modalRemove(activeLastImg,activeLast);
  
          }
      }
  }
  
  //预览图片删除动作
  function modalRemove(imgSrc,activeElement) {
      previewLength--;
      var imgIndex = imgTempList.indexOf(imgSrc);
      if(previewLength > 0) {
          $('.img-list-slider').slickRemove(imgIndex);
      }else {
          $("#show_image").modal('hide');
          $('.img-list-slider').slickRemove(imgIndex);
      }
      imgTempList.splice(imgIndex,1);
      activeElement.remove();
      console.log(imgTempList);
  }
  
</script>