当前位置 : 主页 > 网页制作 > HTTP/TCP >

vue swiper异步加载轮播图,并且懒加载

来源:互联网 收集:自由互联 发布时间:2021-06-16
搬运自:https://blog.csdn.net/weixin_38304202/article/details/78282826 效果: 此处安装省略 vue: div class="banner" v-show="isShowSlide" div class="swiper-banner" div class="swiper-wrapper" div class="swiper-slide" v- for ="(ite

搬运自:https://blog.csdn.net/weixin_38304202/article/details/78282826

 

效果:

 

此处安装省略

 

vue:

<div class="banner" v-show="isShowSlide">
        <div class="swiper-banner">
          <div class="swiper-wrapper">
               <div class="swiper-slide" v-for="(item,index) in swiperList" :key="index">
                    <img src="images//img_loading.jpg"
                :data-src="item.imgpath" class="swiper-lazy" style="width:100%;height:100%">
               </div>
          </div>
           <div class="swiper-pagination" v-if="swiperList.length>1">
                 <span v-for="(item,index) in swiperList"></span>
          </div>
        </div>
      </div>
getImgs: function() { //created中调用
        let _this = this;
        _this.axios.get(‘请求链接‘).then(function(res) {
          if (res.status === 200 && res.data.result === "0") {
            const data = res.data.message.list;
            for (let i in data) {
              _this.swiperList.push(data[i]);
            }
            _this.swiperLength = _this.swiperList.length;

            _this.$nextTick(function() {
              if (_this.swiperLength > 0) {
                _this.isShowSlide = true;
                if (_this.swiperLength == 1) {
                  _this.isAutoplay = 0;
                  _this.isLoop = false;
                } else {
                  _this.isAutoplay = 3000;
                  _this.isLoop = true;
                }
                _this.mySwiper = new Swiper(".swiper-banner", {
                  autoplay: _this.isAutoplay,
                  loop: _this.isLoop,
                  autoplayDisableOnInteraction: false,
                  preventLinksPropagation: false,
                  lazyLoading: true, //懒加载开启
                  pagination: ‘.swiper-pagination‘,
                  observer: true, //修改swiper自己或子元素时,自动初始化swiper
                  observeParents: true, //修改swiper的父元素时,自动初始化swiper
                })
              } else {
                _this.isShowSlide = false;
              }
            })
          } else {   
              _this.isShowSlide = false;            
          }
        }).catch(function(err) {
          console.log(err);
        })
      },
  .swiper-wrapper {
    font-size: 0;
  }

  .swiper-pagination {
    width: 100%;
    height: .2rem;
    text-align: center;
    position: absolute;
    bottom: 0 !important;
    line-height: .2rem;
    box-sizing: border-box;
    padding: 0 .3rem;
    font-size: 0;
  }

  >>>.swiper-pagination-bullet-active {
    background-color: #ff7035 !important;
    opacity: 1;
  }

  .swiper-pagination-bullet {
    background-color: rgba(255, 255, 255, 1);
    opacity: 1;
  }

  .swiper-slide {
    height: 1.5rem !important;
    line-height: 1.5rem !important;
  }

  .swiper-wrapper {
    width: 100% !important;
    height: 100% !important;
  }

  .swiper-container-autoheight,
  .swiper-container-autoheight .swiper-slide {
    height: 100%;
    font-size: 0;
    position: relative;
  }
网友评论