国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue.js實現的幻燈片功能示例

2019-11-19 12:16:03
字體:
來源:轉載
供稿:網友

本文實例講述了vue.js實現的幻燈片功能。分享給大家供大家參考,具體如下:

1、在父組件中

<slide-show :slides="slides"></slide-show>import SlideShow from '@/components/SlideShow'export default { components: {  SlideShow, },

2、在slideshow.vue中

<template>  <div class="slide-show" @mouseover="clearInv" @mouseout="runInv">  // 當鼠標移入的時候清除,移出的時候    <div class="slide-img">      <a href="slides[nowIndex].href" rel="external nofollow" >      <transition name="slide-trans">  // 使用動畫         <img v-if="isShow" :src="slides[nowIndex].src">        </transition>        <transition name="slide-trans-old">         <img v-if="!isShow" :src="slides[nowIndex].src">        </transition>      </a>    </div>    <h2>{{ slides[nowIndex].title }}</h2>    <ul class="slide-pages">      <li @click="goto(prevIndex)"><</li>      <li v-for="(item, index) in slides" @click="goto(index)">        <a :class="{ on: index === nowIndex}">          {{ index + 1 }}        </a>      </li>      <li @click="goto(nextIndex)">></li>    </ul>  </div></template><script>  export default {    props: {      slides: {  // 獲取父組件的屬性        type: Array,        default: []      },      inv: {        type: Number,        default: 1000      }    },    data () {      return {        nowIndex: 0,        isShow: true      }    },    computed: {      prevIndex () {  // 使用計算屬性,        if (this.nowIndex === 0) {          return this.slides.length - 1        } else {          return this.nowIndex - 1        }      },      nextIndex () {        if (this.nowIndex === this.slides.length - 1) {          return 0        } else {          return this.nowIndex + 1        }      }    },    methods: {      goto (index) {        this.isShow = false,        setTimeout(() => {       // 過10毫秒后,          this.isShow = true,          this.nowIndex = index        }, 10)      },      runInv () {         // 設置定時器        this.timer = setInterval(() => {          this.goto(this.nextIndex)        }, this.inv)      },      clearInv () {        clearInterval(this.timer)      }    },    mounted () {     // 加載完后執行      this.runInv()    }  }</script><style scoped>.slide-trans-enter-active { transition: all .5s;}.slide-trans-enter { transform: translateX(900px);}.slide-trans-old-leave-active { transition: all .5s; transform: translateX(-900px);}.slide-show { position: relative; margin: 15px 15px 15px 0; width: 900px; height: 500px; overflow: hidden;}.slide-show h2 { position: absolute; width: 100%; height: 100%; color: #fff; background: #000; opacity: .5; bottom: 0; height: 30px; text-align: left; padding-left: 15px;}.slide-img { width: 100%;}.slide-img img { width: 100%; position: absolute; top: 0;}.slide-pages { position: absolute; bottom: 10px; right: 15px;}.slide-pages li { display: inline-block; padding: 0 10px; cursor: pointer; color: #fff;}.slide-pages li .on { text-decoration: underline;}</style>

希望本文所述對大家vue.js程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 察雅县| 浙江省| 从化市| 资兴市| 石泉县| 龙陵县| 潞城市| 南郑县| 东宁县| 河曲县| 浑源县| 河津市| 塔河县| 敦煌市| 霍城县| 安乡县| 岳阳市| 中牟县| 蒙自县| 阜阳市| 黄龙县| 类乌齐县| 泽州县| 甘孜| 德江县| 体育| 铜陵市| 奉节县| 汶上县| 仪陇县| 安吉县| 汕头市| 南通市| 池州市| 清流县| 呼和浩特市| 淮安市| 长宁区| 香格里拉县| 金溪县| 门源|