• vue-awesome-swiper 简单轮播图


    先安装 npm install swiper vue-awesome-swiper --save
    这里使用的swiper使用的是swiper5.x版本   使用6.x分页器不显示,很多配置都没有效果
    使用全局引入 

    import VueAwesomeSwiper from 'vue-awesome-swiper'
    import 'swiper/css/swiper.css'
    Vue.use(VueAwesomeSwiper)
    
    
    局部引入
    import {Swiper, SwiperSlide} from 'vue-awesome-swiper'
    import 'swiper/css/swiper.css'

    界面

    <template>
      <swiper ref="mySwiper" :options="swiperOptions">
        <swiper-slide v-for="(item,index) of banners" :key="index">
          <img :src="item.icon" ref="icon">
        </swiper-slide>
        <div class="swiper-pagination" slot="pagination"></div>
      </swiper>
    </template>
    
    <style scoped>
      .swiper-slide {
        width: 100%;
        height: 100%;
        overflow: hidden;
      }
    
      .swiper-slide img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
    
      .swiper-container {
        /*--swiper-theme-color: #ff6600;*/
        --swiper-pagination-color: #00ff33; /* 两种都可以 */
      }
    </style>

    js代码

    //import {Swiper, SwiperSlide} from 'vue-awesome-swiper'
      //import 'swiper/css/swiper.css'
    
      export default {
        name: "Banner",
        // components: {
        //   Swiper,
        //   SwiperSlide
        // },
        computed: {
          swiper() {
            return this.$refs.mySwiper.$swiper
          }
        },
        props: {
          banners: {
            type: Array,
            default() {
              return []
            }
          }
        },
        data() {
          return {
            swiperOptions: {
              pagination: {
                el: '.swiper-pagination',
                clickable: true,
                type: 'bullets'
              },
              init: true,
              loop: true,
              initialSlide: 0,
              autoplay: {
                delay: 5000,
                disableOnInteraction: false
              },
              speed: 800,
              direction: "horizontal",
              on: {
                click: () => {
                  //this.swiper.realIndex 选中的索引(对应我们传入的banners集合)
                  //loop为true时轮播图前后会添加滑动时的占位图片
                  //所以会多出2张图片 这里的索引就和数据对应不上了
                  //所以需要使用realInedx
                  //this.swiper.activeIndex 选中的索引(这里是当前真实dom的索引)
                  this.$emit('itemClick',this.swiper.realIndex)
                }
              }
            }
          }
        },
        methods: {
        },
        mounted() {
        }
      }
  • 相关阅读:
    springmvc中@PathVariable和@RequestParam的区别
    Spring MVC 学习总结(一)——MVC概要与环境配置
    web中session与序列化的问题
    EL表达式
    JSTL自定义标签
    [c++][语言语法]stringstream iostream ifstream
    [C++][语言语法]标准C++中的string类的用法总结
    [数据库]数据库查询语句
    [c++][语言语法]函数模板和模板函数 及参数类型的运行时判断
    机器学习算法汇总
  • 原文地址:https://www.cnblogs.com/rchao/p/13284325.html
Copyright © 2020-2023  润新知