轮播模仿臭美APP,vue,swiper

介绍:轮播使用了swiper,重要用于移动端滑动,详情可查看官网

1.首先用npm安装        npm install swiper

2.main.js 中引入CSS     import 'swiper/css/swiper.css'

3.新建swiper-slide.min.css文件 

@charset "utf-8";*{margin:0;padding:0}html{height:100%}body{height:100%;
  background-size:100% 100%
}#header img{width:100%}.swiper-container{width:100%;-webkit-perspective:1200px;-moz-perspective:1200px;-ms-perspective:1200px;perspective:1200px}.swiper-wrapper{margin-top:10px}.swiper-slide{width:80%;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-slide .main-img{width:90%;margin:0 auto;display:block}#pagination{position:absolute;bottom:100px;width:100%}#pagination .swiper-pagination-bullet{width:9.5%;float:left;margin:0 0 0 6.15%;background:0;opacity:1}.swiper-pagination-bullet i{background:#41203f;width:24px;height:24px;line-height:24px;font-size:12px;border-radius:50px;display:block;font-style:normal;text-align:center;margin:0 auto;color:#f5b55c}
.swiper-pagination-bullet-active i{
  -webkit-transform:scale(1.5);
  background-size:auto 100%;color:#815d4b}@media screen and (min-height:481px){.swiper-wrapper{margin-top:20px}#pagination{bottom:110px}}@media screen and (min-height:569px){.swiper-wrapper{margin-top:40px}#pagination{bottom:120px}.swiper-pagination-bullet i{width:30px;height:30px;line-height:30px;font-size:15px}}#footer{position:absolute;bottom:0}#footer img{width:100%;display:block}

4.新建.vue文件,(根据自己喜欢选择不同效果)

<template>
  <div class="onlyShow">
    <div class="swiper-container">
      <div class="swiper-wrapper">
        <div class="swiper-slide"
             v-for="(item, index) in tabDataList"
             :key="index"><img :src="item.logo"
               class="main-img"></div>
      </div>

    </div>
    <div class="swiper-pagination"
         id="pagination"></div>
  </div>
</template>

<script>
import Swiper from 'swiper'

export default {
  data() {
    return {
      tabDataList: [{
        logo: require('@/assets/20191101144840.png')
      }, {
        logo: require('@/assets/20191101144840.png')
      }, {
        logo: require('@/assets/20191101144840.png')
      }],
      isPhone: false
    };
  },
  mounted() {
    var u = navigator.userAgent, app = navigator.appVersion;
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
    var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    if (isAndroid) {
      this.isPhone = true
    }
    if (isIOS) {
      this.isPhone = false
    }
    this.defaultFun()
  },
  methods: {
    defaultFun() {
      // 第一种方法,实现第一张图效果
      var mySwiper = new Swiper(".swiper-container",
        {
          slidesPerView: "auto",
          centeredSlides: !0,
          watchSlidesProgress: !0,
          pagination: ".swiper-pagination",
          paginationClickable: !0,
          paginationBulletRender: function (a, b) {
            // switch (a) { 
            //   case 0: 
            //   name = "洗"; break; case 1: name = "剪"; break; case 2: name = "烫"; break; case 3: name = "染"; break; case 4: name = "护"; break; case 5: name = "套"; break; default: name = "" }return '<span class="' + b + '"><i>' + name + "</i></span>"
          },
          onProgress: function (a) {
            var b, c, d; for (b = 0; b < a.slides.length; b++)c = a.slides[b], d = c.progress, scale = 1 - Math.min(Math.abs(.2 * d), 1), es = c.style, es.opacity = 1 - Math.min(Math.abs(d / 2), 1), es.webkitTransform = es.MsTransform = es.msTransform = es.MozTransform = es.OTransform = es.transform = "translate3d(0px,0," + -Math.abs(150 * d) + "px)"          }, onSetTransition: function (a, b) {            for (var c = 0; c < a.slides.length; c++)es = a.slides[c].style, es.webkitTransitionDuration = es.MsTransitionDuration = es.msTransitionDuration = es.MozTransitionDuration = es.OTransitionDuration = es.transitionDuration = b + "ms"
          }
        });

      // 第二种方法, 实现第二张图效果
      var mySwiper = new Swiper(".swiper-container", {
        slidesPerView: "auto",
        loop: true,
        centeredSlides: !0,
        watchSlidesProgress: !0,
        pagination: ".swiper-pagination",
        paginationClickable: !0,
        onProgress: function (a) {
          var b, c, d; for (b = 0; b < a.slides.length; b++)c = a.slides[b], d = c.progress, scale = 1 - Math.min(Math.abs(.2 * d), 1), es = c.style, es.opacity = 1 - Math.min(Math.abs(d / 2), 1), es.webkitTransform = es.MsTransform = es.msTransform = es.MozTransform = es.OTransform = es.transform = "translate3d(0px,0," + -Math.abs(150 * d) + "px)"
        },
        onSetTransition: function (a, b) {
          for (var c = 0; c < a.slides.length; c++)es = a.slides[c].style, es.webkitTransitionDuration = es.MsTransitionDuration = es.msTransitionDuration = es.MozTransitionDuration = es.OTransitionDuration = es.transitionDuration = b + "ms"        }
      });
    }
  }
};
</script>

<style lang="scss" scoped>
@import "../../../static/swiper-slide.min.css";

.onlyShow {
  .swiperAll {
    .swiper-container {
      position: absolute;
      bottom: 2.306667rem /* 98/75 */;
      top: 1.386667rem /* 104/75 */;
      .main-img {
        background-position: center;
        background-size: cover;
        height: 93%;
        border-radius: 0.133333rem /* 10/75 */;
        box-shadow: 0px 2px 3px #eae7e7;
      }
    }
  }
}
</style>

5.实现效果是这样的

第一张图

第二张图

 

posted @ 2019-11-01 15:52  小短腿奔跑吧  阅读(941)  评论(0编辑  收藏  举报