后盾網lavarel視頻項目---Vue項目使用vue-awesome-swiper輪播插件


后盾網lavarel視頻項目---Vue項目使用vue-awesome-swiper輪播插件

一、總結

一句話總結:

vue中的插件的使用和js插件的使用一樣的簡單,只是vue插件的引入過程有些不同

項目src文件夾下的main.js入口文件中

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'

// require styles
import 'swiper/dist/css/swiper.css'

Vue.use(VueAwesomeSwiper, /* { default global options } */)

 

 

二、前端進擊之路——Vue項目使用vue-awesome-swiper輪播插件

轉自或參考:前端進擊之路——Vue項目使用vue-awesome-swiper輪播插件
https://blog.csdn.net/u014027876/article/details/81663080


  
1.首先呢,我們去gitHub上面找一個vue-awesome-swiper插件。
 

 

 


為了保證整個項目的穩定性,我們安裝2.6.7版本。

npm install vue-awesome-swiper@2.6.7 --save

2.安裝好以后如何使用呢?因為我們這個項目可能在各個頁面上都會用到swiper輪播這個插件,所以我們就在全局引入這個插件。進入項目src文件夾下的main.js入口文件,加入如下幾行代碼:

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'

// require styles
import 'swiper/dist/css/swiper.css'

Vue.use(VueAwesomeSwiper, /* { default global options } */)

接下來就是使用方法啦,具體模板如下:

<template>
  <swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback">
    <!-- slides -->
    <swiper-slide>I'm Slide 1</swiper-slide>
    <swiper-slide>I'm Slide 2</swiper-slide>
    <swiper-slide>I'm Slide 3</swiper-slide>
    <swiper-slide>I'm Slide 4</swiper-slide>
    <swiper-slide>I'm Slide 5</swiper-slide>
    <swiper-slide>I'm Slide 6</swiper-slide>
    <swiper-slide>I'm Slide 7</swiper-slide>
    <!-- Optional controls -->
    <!-- 如果需要分頁器 -->
    <div class="swiper-pagination" slot="pagination"></div>
    <!-- 如果需要導航按鈕 -->
    <div class="swiper-button-prev" slot="button-prev"></div>
    <div class="swiper-button-next" slot="button-next"></div>
    <!-- 如果需要滾動條 -->
    <div class="swiper-scrollbar" slot="scrollbar"></div>
  </swiper>
</template>

由於我的項目中只進行圖片輪播,不需要滾動條和導航按鈕,所以我的代碼如下:

<template>
  <swiper :options="swiperOption">
    <!-- slides -->
    <swiper-slide> 
        <img src=""/>
    </swiper-slide>
    <swiper-slide> 
        <img src=""/>
    </swiper-slide>
    <!-- 如果需要分頁器 -->
    <div class="swiper-pagination" slot="pagination"></div>
  </swiper>
</template>

完成上述代碼以后就可以看到圖片有輪播效果啦,但是圖片大小與屏幕好像不匹配,這個時候我們就要給每個img標簽加一個class,將其width設為100%就可以啦~

為了解決屏幕抖動問題,我們需要在swiper外面加一層class=“wrapper”的div包裹,然后在css樣式中利用padding-bottom屬性來完成圖片的自適應高度占位,防止圖片未加載出來到加載完成過程中屏幕出現抖動。具體css樣式代碼如下:`

 .wrapper
     overflow:hidden
     width:100%
     height:0
     padding-bottom:30.48%
     background: #eee
     .swiper-img
     width:100%

敲黑板!重點內容來啦~~
為什么采用padding-bottom就可以實現高度自適應呢?因為padding-bottom以百分比進行顯示的時候是相對於父元素的width而言的。我們將swiper的父級元素wrapper寬度設置為100%是相對於wrapper父元素的寬度而言的,padding-bottom設置為30.48%也是相對於wrapper父元素的寬度而言的,但由於wrapper的寬度已經和它父元素寬度相等(100%)了,所以padding-bottom就相當於wrapper元素的高寬比就是30.48%,它的高度就會相對於它的寬度自動撐開30.48%。

接下來說說swiper中分頁器的使用

<script> export default { name: 'HomeSwiper', data() { return { swiperOption: { // some swiper options/callbacks // 所有的參數同 swiper 官方 api 參數 pagination: '.swiper-pagination', //分頁器掛載到swiper-pagination類對應的元素上 loop: true //開啟輪播圖前后循環模式 } } }, } </script>

設置好分頁器之后輪播圖上就有了幾個小圓點了,默認選中的圓點是藍色的,但是設計圖中是白色的,那么這就很致命了,於是我們找到小圓點對應的元素是被.swiper-pagination-bullet-active控制的,所以我們從這個上面入手去修改顏色。
然鵝這個類不是我們當前組件中定義的元素,所以在以scoped修飾的css代碼中我們不能直接修改該元素的樣式,這個時候,我們就要用到樣式“穿透”,從而可以不受scoped的限制來修改樣式了。具體代碼如下:

.wrapper >>> .swiper-pagination-bullet-active
    background:#fff

3.最后,我們利用v-for來實現圖片的循環輸出,最終代碼如下:

<template>
    <div class="wrapper">
        <swiper :options="swiperOption" >
            <swiper-slide v-for='item of swiperList' :key="item.id">
                <img :src="item.imgUrl" class="swiper-img">
            </swiper-slide>
            <div class="swiper-pagination" slot="pagination"></div>
        </swiper>
    </div>
</template>

<script> export default { name: 'HomeSwiper', data: function () { return { swiperOption: { pagination: '.swiper-pagination', loop: true }, swiperList:[{ id:"0001", imgUrl:"http://img1.qunarzz.com/piao/fusion/1801/1a/94428c6dea109402.jpg_640x200_2cf590d8.jpg" },{ id:"0002", imgUrl:"http://img1.qunarzz.com/piao/fusion/1802/42/7c92b9a381e46402.jpg_640x200_1cdce2a4.jpg" }] } } } </script>

<style lang="stylus" scoped> .wrapper >>> .swiper-pagination-bullet-active background:#fff .wrapper overflow: hidden width: 100% height: 0 padding-bottom: 30.48% background: #ccc .swiper-img width: 100% </style>

當當當~~最終效果圖呈上來咯:
這里寫圖片描述

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM