vue的輪播圖

image.png

先來展示一個(gè)簡(jiǎn)單的效果。好吧,從這里啥也看不出來,就是一張圖上面有幾個(gè)點(diǎn)而已。想看到demo還是移步這里吧點(diǎn)擊
這僅僅是一個(gè)最簡(jiǎn)單的輪播圖效果,如果用jq我想大家是駕輕就熟,用vue該怎么實(shí)現(xiàn)呢(悄悄告訴你們比jq簡(jiǎn)單多了)?

分析步驟
  • 首先我們把html框子搭出來
  • 然后控制圖片的v-show決定顯示的圖片(這里可以在data里面定義一個(gè)currentPage來表示當(dāng)前顯示的輪播圖的index,只要index === currentPage則v-show為true否則為false)
  • 然后同樣利用currentPage這個(gè)變量控制按鈕的class表示高亮
  • 綁定底部按鈕的click事件,當(dāng)點(diǎn)擊的時(shí)候currentPage變成被點(diǎn)擊的按鈕的index值
  • 最后把圖片的外框元素用transition-group替換(這里不要忘記設(shè)置tag和name兩個(gè)屬性來規(guī)定渲染元素和動(dòng)畫的名稱)
實(shí)踐
  1. 搭建html結(jié)構(gòu)
<template lang='pug'>
.slider-wrap
  transition-group.slider(tag='ul' :name='vertical-image')
    li.item(v-for='(item, index) in imgList' :key='index' v-show='index === currentPage')
      img(:src='item.url')
  .dot
    span(v-for='(item, index) in imgList' :key='index' :class='{"active": index ===currentPage}' @click='changeSilder(index)')
</template>

解析:slider-wrap 為整個(gè)焦點(diǎn)圖的外框,上面綁定兩個(gè)事件mouseenter和mouseleave,目的是為了劃過焦點(diǎn)圖的時(shí)候停止動(dòng)畫;slider是輪播的圖片的外框;循環(huán)imgs,生成li,并定義v-show決定顯示的圖片;dot里面放下面的按鈕

  1. 利用v-show顯示圖片(當(dāng)index===currentPage的時(shí)候顯示該張圖片),并綁定click事件,來改變顯示的圖片
data () {
    return {
      currentPage: 0
    }
},
methods: {
  changeSilder (index) {
      this.currentPage = index
  }
}
  1. 補(bǔ)充切換的動(dòng)畫
.vertical-image-enter-active {
    transform: translateX(0);
    transition: all 1s ease;
}
.vertical-image-leave-active {
    transform: translateX(-100%);
    transition: all 1s ease;
}
.vertical-image-enter {
    transform: translateX(100%);
}
.vertical-image-leave {
    transform: translateX(0);
}

備注:可以利用setTimeout讓焦點(diǎn)圖自動(dòng)輪播,并在劃過的時(shí)候停止,如果需要看到具體的實(shí)現(xiàn)demo里面都有哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,063評(píng)論 25 709
  • 最近在學(xué)習(xí)Vue,然后做了一個(gè)輪播圖,然后想起之前用jQuery做的輪播圖,就打算進(jìn)行一個(gè)對(duì)比。 jQuery輪播...
    大春春閱讀 17,928評(píng)論 13 61
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,335評(píng)論 0 17
  • 講個(gè)故事給你們聽。聽完你就大徹大悟?。。?“李彥宏是大騙子,我們都上了他的當(dāng)了!” 于是,有人向政府舉報(bào),有人請(qǐng)記...
    劉軍偉_閱讀 484評(píng)論 0 0
  • 故鄉(xiāng)的土路上 溝、崖、湖畔 小草和沙礫為侶 大地是溫床 天地那樣遼闊 青草和藍(lán)天相挽到天涯 不與百花爭(zhēng)艷 陽光下 ...
    賈玉紅閱讀 667評(píng)論 0 0

友情鏈接更多精彩內(nèi)容