最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue2項(xiàng)目之swiper.js 的使用

 更新時(shí)間:2023年12月10日 08:47:32   投稿:wdc  
這篇文章主要介紹了vue2項(xiàng)目之swiper.js 的使用,需要的朋友可以參考下

swiper.js 的使用

官網(wǎng) API(部署在 swiper 實(shí)例中):https://www.swiper.com.cn/api/index.html

官網(wǎng)輪播圖(查看源代碼):https://www.swiper.com.cn/demo/index.html

接下來(lái)介紹怎么在 vue2 里使用 swiper.js (vue2 使用 swiper5版本)

1、安裝、引入css

npm i swiper@5
// main.js

// 引入 swiper.css
import "swiper/css/swiper.css";

2、在組件中使用:引入 js 引入 html 結(jié)構(gòu)

import Swiper from 'swiper'

html 結(jié)構(gòu):

1、開始先放個(gè)圖片占個(gè)位置確定布局,再把圖片換成下面的結(jié)構(gòu)

2、注意最外層的 class="swiper-container" 必須!且后面的 swiper 實(shí)例也要改!

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide" v-for="(img,index) in bannerList" :key="index">
            <img :src="img.imgUrl" />
        </div>
    </div>

    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
    <div class="swiper-pagination"></div>
</div>

3、最后關(guān)鍵是創(chuàng)建 swiper 實(shí)例! 有兩種方式

方式一:

如果圖片已經(jīng)固定(或圖片url數(shù)組已經(jīng)確定 )那么直接在 mounted 函數(shù)中創(chuàng)建

mounted() {
    // 下面是普通swiper模板
    new Swiper(".swiper-container", {
        loop: true,
        mousewheel: true,
        keyboard: true,

        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
        },

        pagination: {
            el: ".swiper-pagination",
        },                    
    });
}

方式二:

用到 v-for 遍歷圖片url數(shù)組(并且該數(shù)組是在本組件中通過(guò)發(fā)請(qǐng)求獲取的),那么就要用到 watch + $nextTick

5.11.1 watch+$nextTick

當(dāng)一個(gè)數(shù)據(jù)發(fā)生改變時(shí),此時(shí) DOM 還沒有更新,所以在監(jiān)視屬性中的 handle 函數(shù)中 寫一個(gè) $nextTick 可以實(shí)現(xiàn) 數(shù)據(jù)發(fā)生改變且 DOM 更新后執(zhí)行代碼

回到 swiper ,我們?cè)谶@個(gè)時(shí)候 創(chuàng)建 swiper 實(shí)例

bannerList:圖片url數(shù)組

watch: {
    bannerList: {
        handler() {
            this.$nextTick(function() {
                new Swiper(".swiper-container", {
                    loop: true,
                    mousewheel: true,
                    keyboard: true,

                    navigation: {
                        nextEl: ".swiper-button-next",
                        prevEl: ".swiper-button-prev",
                    },

                    pagination: {
                        el: ".swiper-pagination",
                    },                    
                });
            })
        }
    }
},

5.11.2 修改分頁(yè)器樣式

1、添加屬性

pagination: {
    el: ".swiper-pagination",
    clickable: true,
    bulletClass : 'my-bullet', // 這個(gè)
    bulletActiveClass: 'my-bullet-active',
},

2、在組件里面寫 css (不要加 scope)

// 分頁(yè)器樣式
.my-bullet{
    position: relative;
    display: inline-block;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    background: black;
    opacity: 0.5;
    margin: 0 4px;
}

// 選中的分頁(yè)器樣式(會(huì)繼承上面那個(gè)樣式)
.my-bullet-active {
    background: #ff6600;
    opacity: 1;
}

5.11.3 封裝輪播圖組件

當(dāng)一個(gè)圖片需要變?yōu)檩啿D時(shí),我們把 img 標(biāo)簽 換成 Carousel 組件即可!

1、Carousel 組件需要一個(gè)參數(shù):圖片 url 數(shù)組

imgList = [
    {imgUrl: '...'}
    {imgUrl: '...'}
]

2、將 Carousel 組件注冊(cè)為全局組件

// 在 components 中新建 Carousel 文件夾

// main.js
import Carousel from '@/components/Carousel'
Vue.component(Carousel.name,Carousel)

3、Carousel/index.vue (直接照搬即可 樣式可自行修改)

<template>
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide" v-for="(img,index) in imgList" :key="index">
                <img :src="img.imgUrl" />
            </div>
        </div>

        <div class="swiper-button-next"></div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-pagination"></div>
    </div>
</template>

<script>
    import Swiper from 'swiper'

    export default {
        name: 'Carousel',

        props: ['imgList'],

        watch: {
            imgList: {
                immediate: true,
                handler() {
                    this.$nextTick(function() {
                        new Swiper(".swiper-container", {
                            loop: true,

                            pagination: {
                                el: ".swiper-pagination",
                                clickable: true,
                                bulletClass : 'my-bullet',
                                bulletActiveClass: 'my-bullet-active',

                            },
                            
                            navigation: {
                                nextEl: ".swiper-button-next",
                                prevEl: ".swiper-button-prev",
                            },
                        });
                    })
                }
            }
        }
    }
</script>

<style lang="less">
    // 分頁(yè)器樣式
    .my-bullet{
        position: relative;
        display: inline-block;
        width: 15px;
        height: 15px;
        border-radius: 100%;
        background: black;
        opacity: 0.5;
        margin: 0 4px;
    }

    // 選中的分頁(yè)器樣式(會(huì)繼承上面那個(gè)樣式)
    .my-bullet-active {
        background: #ff6600;
        opacity: 1;
    }
</style>

4、組件中使用(傳入圖片 url 數(shù)組即可)

<Carousel :imgList="bannerList" />

5.11.4 swiper 屬性

1、 <div class="swiper-container">:為輪播圖大盒子

2、<div class="swiper-slide">:為裝圖片的盒子,可以指定大小,那么圖片直接適配。或者不指定大小,則需要指定圖片大小。

3、slidesPerView:設(shè)置 輪播圖大盒子 顯示 輪播圖 張數(shù),輪播圖 會(huì)被修改寬度適配 輪播圖大盒子

4、slidesPerGroup:每次切換 輪播圖 張數(shù)

5、給 <div class="swiper-slide"> 添加類名 swiper-no-swiping :禁止滑動(dòng)

以上就是vue2項(xiàng)目之swiper.js 的使用的詳細(xì)內(nèi)容,更多關(guān)于vue2項(xiàng)目之swiper.js 的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue模板語(yǔ)法-插值詳解

    vue模板語(yǔ)法-插值詳解

    這篇文章主要介紹了vue模板語(yǔ)法-插值,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-03-03
  • Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫效果示例代碼

    Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫效果示例代碼

    這篇文章主要介紹了Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫效果示例代碼,Vue中為我們提供一些內(nèi)置組件和對(duì)應(yīng)的API來(lái)完成動(dòng)畫,利用它們我們可以方便的實(shí)現(xiàn)過(guò)渡動(dòng)畫效果,需要的朋友可以參考下
    2022-08-08
  • vue3中頁(yè)面跳轉(zhuǎn)兩種實(shí)現(xiàn)方式

    vue3中頁(yè)面跳轉(zhuǎn)兩種實(shí)現(xiàn)方式

    在Vue3中Vue?Router是一個(gè)常用的路由管理庫(kù),它提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)實(shí)現(xiàn)路由跳轉(zhuǎn)和導(dǎo)航,這篇文章主要給大家介紹了關(guān)于vue3中頁(yè)面跳轉(zhuǎn)的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2024-09-09
  • Vue.use源碼分析

    Vue.use源碼分析

    這篇文章主要為大家詳細(xì)介紹了Vue.use源碼,Vue.use方法的引入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Vue3中watch無(wú)法監(jiān)聽的解決辦法

    Vue3中watch無(wú)法監(jiān)聽的解決辦法

    本文主要介紹了Vue3中watch無(wú)法監(jiān)聽的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Vue引用echarts超詳細(xì)步驟(附圖文)

    Vue引用echarts超詳細(xì)步驟(附圖文)

    這篇文章主要給大家介紹了關(guān)于Vue引用echarts超詳細(xì)步驟,vue中優(yōu)雅的使用echarts?在前端工作中,數(shù)據(jù)可視化用得最多的,可能就是圖表了,需要的朋友可以參考下
    2023-08-08
  • 使用Vue3+PDF.js實(shí)現(xiàn)PDF預(yù)覽功能

    使用Vue3+PDF.js實(shí)現(xiàn)PDF預(yù)覽功能

    項(xiàng)目中有一個(gè)需要預(yù)覽下載pdf的需求,網(wǎng)上找了很久,決定使用 pdf.js 完成,下面這篇文章主要給大家介紹了關(guān)于使用Vue3+PDF.js實(shí)現(xiàn)PDF預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue項(xiàng)目實(shí)現(xiàn)圖形驗(yàn)證碼

    vue項(xiàng)目實(shí)現(xiàn)圖形驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目實(shí)現(xiàn)圖形驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Vue實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的三種方式總結(jié)

    Vue實(shí)現(xiàn)刷新當(dāng)前頁(yè)面的三種方式總結(jié)

    項(xiàng)目當(dāng)中如果做新增/修改/刪除等等操作通常情況下都需要刷新數(shù)據(jù)或者刷新當(dāng)前頁(yè)面。本文為大家整理了三種不同的實(shí)現(xiàn)方法,需要的可以參考一下
    2023-01-01
  • vue基礎(chǔ)之面包屑和標(biāo)簽tag詳解

    vue基礎(chǔ)之面包屑和標(biāo)簽tag詳解

    這篇文章主要為大家詳細(xì)介紹了vue的面包屑和標(biāo)簽tag,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論

长丰县| 赤城县| 舒城县| 达日县| 芜湖市| 铁岭县| 淄博市| 隆回县| 沾化县| 珠海市| 商丘市| 兴化市| 婺源县| 翁牛特旗| 嘉祥县| 博爱县| 永康市| 微博| 兰坪| 邵阳市| 绍兴县| 西城区| 平利县| 大荔县| 镇安县| 始兴县| 呼和浩特市| 兴城市| 三都| 芒康县| 疏勒县| 沈丘县| 四子王旗| 屯门区| 丰城市| 濮阳市| 霍林郭勒市| 望奎县| 萨嘎县| 庐江县| 松潘县|