vue實(shí)現(xiàn)帶縮略圖的輪播圖效果
1.引入swiper和vue-awesome-swiper插件
npm install swiper@4 --save npm install vue-awesome-swiper@3 --save
2.在main.js中引入:
import VueAwesomeSwiper from 'vue-awesome-swiper' Vue.use(VueAwesomeSwiper) import '../node_modules/swiper/dist/css/swiper.css'
3.使用:
template:布局
<template>
<div>
<div class="thumb-example">
<!-- swiper1 -->
<swiper
class="swiper gallery-top"
:options="swiperOptionTop"
ref="swiperTop"
>
<swiper-slide class="slide-1" v-for="item in bigImg" :key="item.id">
<img :src="item.url" style="height:570px;width:100%" alt="" />
</swiper-slide>
<div
class="swiper-button-next swiper-button-white"
slot="button-next"
></div>
<div
class="swiper-button-prev swiper-button-white"
slot="button-prev"
></div>
</swiper>
<!-- swiper2 Thumbs -->
<swiper
class="swiper gallery-thumbs"
:options="swiperOptionThumbs"
ref="swiperThumbs"
>
<swiper-slide
class="slide"
style="width:100px;height:100px;"
v-for="item in bigImg"
:key="item.id"
>
<img style="width:100px;height:100px;" :src="item.url" alt="" />
</swiper-slide>
<div class="swiper-button-next swiper-button-white" slot="button-next">
<div>
<img src="../assets/ArtIcon-offs.svg" alt="" />
</div>
</div>
<div class="swiper-button-prev swiper-button-white" slot="button-prev">
<div>
<img src="../assets/ArtIcon-offs.svg" alt="" />
</div>
</div>
</swiper>
</div>
</div>
</template>
<script>
export default {
mounted() {
// 實(shí)現(xiàn)swiper雙向控制
this.$nextTick(() => {
const swiperTop = this.$refs.swiperTop.swiper
const swiperThumbs = this.$refs.swiperThumbs.swiper
swiperTop.controller.control = swiperThumbs
swiperThumbs.controller.control = swiperTop
})
},
data() {
return {
//輪播大圖配置
bigImg: [
{
url: 'https://bhw.lllomh.com/images/02.jpg',
id: 0
},
{
url: 'https://bhw.lllomh.com/images/01.jpg',
id: 1
},
{
url: 'https://bhw.lllomh.com/images/03.jpg',
id: 2
},
{
url: 'https://bhw.lllomh.com/images/04.jpg',
id: 3
}
],
swiperOptionTop: {
zoom: true,
loop: true,
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10,
observer: true, //修改swiper自己或子元素時(shí),自動(dòng)初始化swiper
observeParents: true, //修改swiper的父元素時(shí),自動(dòng)初始化swiper
// autoplay: { //自動(dòng)輪播
// delay: 2000,
// disableOnInteraction: false
// },
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
},
swiperOptionThumbs: {
loop: true,
loopedSlides: 5, // looped slides should be the same
spaceBetween: 10,
centeredSlides: true,
slidesPerView: 'auto',
touchRatio: 0.2,
slideToClickedSlide: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
}
}
},
methods: {}
}
</script>4.scss or sass
<style lang="scss" scoped>
h3 {
margin: 20px 0 0 10px;
}
.thumb-example {
width: 864px;
margin-top: 20px;
// background: #000;
}
.swiper-slide {
background-size: cover;
background-position: center;
}
.gallery-top {
// height: 80% !important;
height: 600px;
width: 100%;
}
.gallery-thumbs {
height: 20% !important;
box-sizing: border-box;
padding: 10px 0px;
width: 864px;
margin-left: 2px;
.swiper-button-next {
right: 0px;
}
.swiper-button-prev {
left: 0px;
}
.swiper-button-next,
.swiper-button-prev {
background: #fff;
width: 45px;
text-align: center;
height: 101px;
top: 26%;
div {
margin-top: 30px;
background: rgb(207, 205, 205);
height: 45px;
border-radius: 50%;
img {
margin: 7px 0 0 2px;
width: 30px;
}
}
}
.swiper-button-next:hover div {
background: rgb(189, 186, 186);
}
.swiper-button-prev:hover div {
background: rgb(189, 186, 186);
}
}
.gallery-thumbs .swiper-slide {
width: 20%;
height: 80px;
// opacity: 0.4;
}
.gallery-thumbs .swiper-slide-active {
border: 2px solid red;
}
</style>
這樣就可以了
效果:

到此這篇關(guān)于vue實(shí)現(xiàn)帶縮略圖的輪播圖效果的文章就介紹到這了,更多相關(guān)vue帶縮略圖輪播內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue菜單欄聯(lián)動(dòng)內(nèi)容頁(yè)面tab的實(shí)現(xiàn)示例
本文主要介紹了vue菜單欄聯(lián)動(dòng)內(nèi)容頁(yè)面tab的實(shí)現(xiàn)示例,左側(cè)菜單欄與右側(cè)內(nèi)容部分聯(lián)動(dòng),當(dāng)點(diǎn)擊左側(cè)的菜單,右側(cè)會(huì)展示對(duì)應(yīng)的tab,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
vue項(xiàng)目配置同一局域網(wǎng)可使用ip訪問(wèn)的操作
這篇文章主要介紹了vue項(xiàng)目配置同一局域網(wǎng)可使用ip訪問(wèn)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Vue項(xiàng)目導(dǎo)入導(dǎo)出文件功能以及導(dǎo)出文件后亂碼問(wèn)題及解決
這篇文章主要介紹了Vue項(xiàng)目導(dǎo)入導(dǎo)出文件功能以及導(dǎo)出文件后亂碼問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue組件之間的參數(shù)傳遞與方法調(diào)用的實(shí)例詳解
這篇文章主要介紹了Vue組件之間的參數(shù)傳遞與方法調(diào)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
關(guān)于vue利用postcss-pxtorem進(jìn)行移動(dòng)端適配的問(wèn)題
這篇文章主要介紹了關(guān)于vue利用postcss-pxtorem進(jìn)行移動(dòng)端適配的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Vue API中setup ref reactive函數(shù)使用教程
setup是用來(lái)寫(xiě)組合式api,內(nèi)部的數(shù)據(jù)和方法需要通過(guò)return之后,模板才能使用。在之前vue2中,data返回的數(shù)據(jù),可以直接進(jìn)行雙向綁定使用,如果我們把setup中數(shù)據(jù)類(lèi)型直接雙向綁定,發(fā)現(xiàn)變量并不能實(shí)時(shí)響應(yīng)。接下來(lái)就詳細(xì)看看它們的使用2022-12-12
Vue.js中vue-property-decorator的使用方法詳解
vue-property-decorator是一個(gè)用于在Vue.js中使用TypeScript裝飾器的庫(kù),它能夠簡(jiǎn)化 Vue 組件的定義,使代碼更加簡(jiǎn)潔和可維護(hù),它能夠簡(jiǎn)化Vue組件的定義,使代碼更加簡(jiǎn)潔和可維護(hù),本文將深入探討vue-property-decorator的使用方法,并展示如何在Vue.js項(xiàng)目中應(yīng)用它2024-08-08
vue3實(shí)現(xiàn)圖片瀑布流展示效果實(shí)例代碼
這篇文章主要介紹了vue3實(shí)現(xiàn)圖片瀑布流展示效果的相關(guān)資料,該組件可以調(diào)整列數(shù)、支持懶加載、自定義每頁(yè)滾動(dòng)數(shù)量、高度和點(diǎn)擊效果,作者展示了組件的效果,并詳細(xì)說(shuō)明了實(shí)現(xiàn)方法,包括組件的創(chuàng)建和依賴(lài)的工具庫(kù),需要的朋友可以參考下2024-11-11

