欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果

 更新時(shí)間:2022年03月03日 17:56:43   作者:theMuseCatcher  
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播的具體代碼,供大家參考,具體內(nèi)容如下

效果如圖:

 ①創(chuàng)建Banner.vue組件,需傳入banner數(shù)組,可設(shè)置輪播間隔ms

<template>
? <div class="m-banner-wrap" v-if="bannerData.length">
? ? <div class="m-banner-list">
? ? ? <div
? ? ? ? class="u-banner-item fade"
? ? ? ? v-for="(item, index) in bannerData"
? ? ? ? :key="index"
? ? ? ? v-show="index===activeIndex"
? ? ? ? :style="`background: url(${item.tupian}) no-repeat; background-size: cover;`"
? ? ? ? @mouseover="onOver()" @mouseout="onOut()">
? ? ? ? <a :href="item.link"></a>
? ? ? </div>
? ? </div>
? ? <div class="m-dot-list" v-if="bannerData.length > 1">
? ? ? <div v-for="(item, index) in bannerData" :key="index" :class="['u-dot-item', {active: index===activeIndex}]" @mouseenter="onEnter(index)" @mouseleave="onLeave">
? ? ? </div>
? ? </div>
? </div>
</template>
<script>
export default {
? name: 'Banner',
? props: {
? ? bannerData: { // banner數(shù)組
? ? ? type: Array,
? ? ? default: () => {
? ? ? ? return []
? ? ? }
? ? },
? ? interval: { // 切換間隔ms
? ? ? type: Number,
? ? ? default: 3000
? ? }
? },
? data () {
? ? return {
? ? ? activeIndex: 0,
? ? ? timer: null
? ? }
? },
? mounted () {
? ? setTimeout(() => {
? ? ? this.startSlider()
? ? }, 1000)
? },
? methods: {
? ? onOver () {
? ? ? clearInterval(this.timer)
? ? },
? ? onOut () {
? ? ? this.startSlider()
? ? },
? ? onEnter (index) {
? ? ? this.activeIndex = index
? ? ? clearInterval(this.timer)
? ? },
? ? onLeave () {
? ? ? this.startSlider()
? ? },
? ? startSlider () {
? ? ? clearInterval(this.timer)
? ? ? if (this.bannerData.length > 1) {
? ? ? ? this.timer = setInterval(this.onMove, this.interval)
? ? ? }
? ? },
? ? onMove () {
? ? ? if (this.activeIndex === this.bannerData.length - 1) {
? ? ? ? this.activeIndex = 0
? ? ? } else {
? ? ? ? this.activeIndex++
? ? ? }
? ? }
? },
? beforeDestroy () {
? ? clearInterval(this.timer)
? ? this.timer = null
? }
}
</script>
<style lang="less" scoped>
@mainColor: #108ee9;
.m-banner-wrap {
? width: 100%;
? height: 600px;
? min-width: 1200px;
? margin: 0 auto;
? overflow: hidden;
? position: relative;
? .m-banner-list {
? ? height: 600px;
? ? .u-banner-item {
? ? ? min-width: 1200px;
? ? ? height: 600px;
? ? ? width: 100%;
? ? ? a {
? ? ? ? display: block;
? ? ? ? height: 100%;
? ? ? }
? ? }
? ? .fade {
? ? ? animation: fade 0.5s ease-in-out; // 切換banner時(shí)的過(guò)渡效果
? ? }
? ? @keyframes fade {
? ? ? 0% {opacity:0;}
? ? ? 5% {opacity:0.05;}
? ? ? 10% {opacity:0.1;}
? ? ? 20% {opacity:0.2;}
? ? ? 35% {opacity:0.35;}
? ? ? 50% {opacity:0.5;}
? ? ? 65% {opacity:0.65;}
? ? ? 80% {opacity:0.8;}
? ? ? 90% {opacity:0.9;}
? ? ? 95% {opacity:0.95;}
? ? ? 100%{opacity:1;}
? ? }
? }
? .m-dot-list {
? ? width: 600px;
? ? position: absolute;
? ? bottom: 20px;
? ? left: 50%;
? ? margin-left: -300px;
? ? text-align: center;
? ? .u-dot-item { // 圓點(diǎn)樣式
? ? ? display: inline-block;
? ? ? width: 12px;
? ? ? height: 12px;
? ? ? margin: 0 5px;
? ? ? background: #fff;
? ? ? cursor: pointer;
? ? ? border: 1px solid #fff;
? ? ? border-radius: 50%;
? ? ? opacity: 0.8;
? ? }
? ? .active { // 圓點(diǎn)選中樣式
? ? ? width: 30px;
? ? ? background: @mainColor;
? ? ? border: 1px solid @mainColor;
? ? ? border-radius: 12px;
? ? ? opacity: 1;
? ? }
? }
}
</style>

②在要使用的頁(yè)面引入

<Banner :bannerData="bannerData" :interval="3000"/>
import Banner from '@/components/Banner'
components: {
? ? Banner
}
data () {
? ? return {
? ? ? bannerData: [
? ? ? ? {
? ? ? ? ? link: '跳轉(zhuǎn)地址...',
? ? ? ? ? src: '圖片地址...'
? ? ? ? },
? ? ? ? {
? ? ? ? ? link: '跳轉(zhuǎn)地址...',
? ? ? ? ? src: '圖片地址...'
? ? ? ? },
? ? ? ? {
? ? ? ? ? link: '跳轉(zhuǎn)地址...',
? ? ? ? ? src: '圖片地址...'
? ? ? ? }
? ? ? ]
? ? }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue+Element的后臺(tái)管理框架的整合實(shí)踐

    Vue+Element的后臺(tái)管理框架的整合實(shí)踐

    本文主要介紹了Vue+Element的后臺(tái)管理框架,在框架上,領(lǐng)導(dǎo)要用AdminLTE這套模板,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue3如何實(shí)現(xiàn)單點(diǎn)登錄

    vue3如何實(shí)現(xiàn)單點(diǎn)登錄

    這篇文章主要介紹了vue3如何實(shí)現(xiàn)單點(diǎn)登錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • VUE子組件的watch不被觸發(fā)問(wèn)題及解決

    VUE子組件的watch不被觸發(fā)問(wèn)題及解決

    這篇文章主要介紹了VUE子組件的watch不被觸發(fā)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 優(yōu)雅地使用loading(推薦)

    優(yōu)雅地使用loading(推薦)

    這篇文章主要介紹了在Vue和React中如何優(yōu)雅地使用loading,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改)

    詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改)

    本篇文章主要介紹了詳解Vue2 無(wú)限級(jí)分類(添加,刪除,修改) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • vuejs2.0子組件改變父組件的數(shù)據(jù)實(shí)例

    vuejs2.0子組件改變父組件的數(shù)據(jù)實(shí)例

    本篇文章主要介紹了vuejs2.0子組件改變父組件的數(shù)據(jù)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • vue2/vue3路由權(quán)限管理的方法實(shí)例

    vue2/vue3路由權(quán)限管理的方法實(shí)例

    最近用vue框架做了個(gè)后臺(tái)管理項(xiàng)目,涉及權(quán)限,所以下面這篇文章主要給大家介紹了關(guān)于vue2/vue3路由權(quán)限管理的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue-router+nginx 非根路徑配置方法

    vue-router+nginx 非根路徑配置方法

    這篇文章主要介紹了vue-router+nginx 非根路徑配置方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • vue實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定

    vue實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定

    本篇文章主要介紹了vue實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)綁定,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法

    Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Vue 2.0雙向綁定原理的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評(píng)論