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

用vue寫一個(gè)仿簡(jiǎn)書的輪播圖的示例代碼

 更新時(shí)間:2018年03月13日 10:38:59   作者:AIBBSHINBAJI  
本篇文章主要介紹了用vue寫一個(gè)仿簡(jiǎn)書的輪播圖的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1.先展示最終效果:

2.解決思路

Vue的理念是以數(shù)據(jù)驅(qū)動(dòng)視圖,所以拒絕通過改變?cè)氐膍argin-top來實(shí)現(xiàn)滾動(dòng)效果。寫好css樣式,只需改變每張圖片的class即可實(shí)現(xiàn)輪播效果。動(dòng)畫效果交給transition完成??梢詫⑤啿D看成兩個(gè)(mainSlide和extraSlide),各個(gè)圖片的位置如圖所示:

3.代碼實(shí)現(xiàn)

各個(gè)slide的樣式:

$width: 800px;   // 容器寬度
$height: 300px;   // 容器高度
$bWidth: 500px;   // 大圖片寬度
$sWidth: $width - $bWidth; // 小圖片寬度
$sHeight: $height / 2; // 小圖片高度
#slider-wrapper{
  width: $width;
  height: $height;
  margin: 0 auto;
  cursor: pointer;
  background: #ddd;
  border-radius: 5px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.117647), 0 1px 4px rgba(0,0,0,0.117647);
  display: flex;
  overflow: hidden;
  div{
    display: inline-block;
  }
}
.main-slide{
  width: $bWidth;
  height: $height;
  float: left;
  transition: all .4s ease;
}
.extra-slide{
  width: $sWidth;
  position: relative;
  .extra-slide-item{
    position: absolute;
    width: $sWidth;
    height: $sHeight;
    left: 0;
    transition: .4s ease-out;
  }
  .extra-slide-top{
    top: -$sHeight;
  }
  .extra-slide-middle-first{
    top: 0;
    z-index: 2
  }
  .extra-slide-middle-second{
    top: $sHeight;
    z-index: 2
  }
  .extra-slide-bottom{
    top: $height
  }
  .extra-slide-hide{
    display: none!important;
  }
}

模板包含兩個(gè)輪播圖:

<div id="slider-wrapper" @mouseover="stop" @mouseout="start">
  <!-- 輪播圖1,mainSlide -->
  <div class="main-slide" :style="`background: url(${slideConfig[nowIndex].src})`"></div>
  <!-- 輪播圖2,extraSlide -->
  <div class="extra-slide">
    <div class="extra-slide-item" :class="slideClass(i)" v-for="(v, i) in slideConfig" :key="i" :style="`background: url(${v.src}); background-size: cover`"></div>
  </div>
</div>

scripts部分,設(shè)置一個(gè)nowIndex,定時(shí)改變nowIndex。所有圖片的class根據(jù)這個(gè)nowIndex來變化,這里使用了es6的map類型,詳情點(diǎn)擊:http://www.fzitv.net/article/111734.htm

export default {
  name: 'slider',
  data: function() {  
    return {
      slideInterval: null,
      nowIndex: 0,
      slideLength: this.slideConfig.length
    }
  },
  props: {
    slideConfig: {
      type: Array
    }
  },
  methods: {
    // 限制index不能超出圖片列表長(zhǎng)度
    resetIndex(i) {
      return i > this.slideLength - 1 ? i - this.slideLength : i
    },
    slideClass(i) {
      let nowIndex = this.nowIndex
      // Map就是key也可以是非字符串的對(duì)象,不用Map多寫幾個(gè) if else 也可以
      let map = new Map([
        [this.resetIndex(nowIndex), 'extra-slide-top'],
        [this.resetIndex(nowIndex + 1), 'extra-slide-middle-first'],
        [this.resetIndex(nowIndex + 2), 'extra-slide-middle-second'],
        [this.resetIndex(nowIndex + 3), 'extra-slide-bottom']
      ])
      // 圖片的class根據(jù)nowIndex的變化而變化
      return map.get(i) ? map.get(i) : 'extra-slide-hide'
    },
    start() {
      // 定時(shí)改變nowIndex
      this.slideInterval = setInterval(() => {
        this.nowIndex = this.nowIndex > this.slideLength - 2 ? 0 : this.nowIndex + 1
        console.log(this.nowIndex)
      }, 2000)
    },
    stop() {
      clearInterval(this.slideInterval)
      this.slideInterval = null
    }
  },
  mounted() {
    this.start()
  },
  destroyed() {
    this.stop()
  }
}

slideConfig,組件的props:

const prefix = '/src/assets/'
const slideConfig = [{
 src: prefix + 's1.jpg',
 title: '圖1',
 desc: '說明1'
}, {
 src: prefix + 's2.jpg',
 title: '圖2',
 desc: '說明2'
}, {
 src: prefix + 's3.jpg',
 title: '圖3',
 desc: '說明3'
}, {
 src: prefix + 's4.jpg',
 title: '圖4',
 desc: '說明4'
}, {
 src: prefix + 's5.jpg',
 title: '圖5',
 desc: '說明5'
}, {
 src: prefix + 's6.jpg',
 title: '圖6',
 desc: '說明6'
}]
export default slideConfig

使用:

<slider :slideConfig="slideConfig" />

2018/3/12 16:55 : slideConfig已修改成Props,提取slider.vue就可以直接用了

gitHub傳送門:https://github.com/bougieL/jianshuslider

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

相關(guān)文章

  • 如何抽象一個(gè)Vue公共組件

    如何抽象一個(gè)Vue公共組件

    這篇文章主要介紹了如何抽象一個(gè)Vue公共組件,以一個(gè)數(shù)字鍵盤組件為例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Vue Promise解決回調(diào)地獄問題實(shí)現(xiàn)方法

    Vue Promise解決回調(diào)地獄問題實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue Promise解決回調(diào)地獄問題,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路
    2023-01-01
  • vue使用lodash中debounce(防抖函數(shù))的幾種方法實(shí)現(xiàn)

    vue使用lodash中debounce(防抖函數(shù))的幾種方法實(shí)現(xiàn)

    本文主要介紹了vue使用lodash中debounce(防抖函數(shù))的幾種方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Vue3?setup?的作用實(shí)例詳解

    Vue3?setup?的作用實(shí)例詳解

    setup?用來寫組合式?API,從生命周期的角度,相當(dāng)于取代了?beforeCreate(),這篇文章主要介紹了Vue3?setup?的作用,需要的朋友可以參考下
    2022-12-12
  • vue.config.js常用配置詳解

    vue.config.js常用配置詳解

    這篇文章主要介紹了vue.config.js常用配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue中Axios的封裝和API接口的管理示例詳解

    vue中Axios的封裝和API接口的管理示例詳解

    這篇文章主要介紹了vue中Axios的封裝和API接口的管理,主要目的就是在幫助我們簡(jiǎn)化代碼和利于后期的更新維護(hù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Vue中的請(qǐng)求攔截器和響應(yīng)攔截器用法及說明

    Vue中的請(qǐng)求攔截器和響應(yīng)攔截器用法及說明

    這篇文章主要介紹了Vue中的請(qǐng)求攔截器和響應(yīng)攔截器用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue?url跳轉(zhuǎn)解析和參數(shù)編碼介紹

    vue?url跳轉(zhuǎn)解析和參數(shù)編碼介紹

    這篇文章主要介紹了vue?url跳轉(zhuǎn)解析和參數(shù)編碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue中如何引入jQuery和Bootstrap

    vue中如何引入jQuery和Bootstrap

    本篇文章主要介紹了vue中如何引入jQuery和Bootstrap,詳細(xì)的介紹了引入jQuery和Bootstrap的方法,有興趣的可以了解一下。
    2017-04-04
  • vue渲染時(shí)閃爍{{}}的問題及解決方法

    vue渲染時(shí)閃爍{{}}的問題及解決方法

    v-if和v-show可能是日常開發(fā)中最常用的兩個(gè)指令,雖然看上去兩者功能是類似的,但是兩者還是存在很大區(qū)別的。接下來通過本文給大家分享vue渲染時(shí)閃爍{{}}的問題及解決方法,感興趣的朋友一起看看吧
    2018-03-03

最新評(píng)論

海宁市| 海南省| 兰考县| 邵阳市| 柳江县| 岗巴县| 建宁县| 应城市| 铜梁县| 三原县| 法库县| 辉南县| 宁城县| 阜南县| 蕲春县| 通榆县| 浑源县| 永昌县| 怀柔区| 甘孜县| 霍山县| 英吉沙县| 旺苍县| 湖南省| 新绛县| 拉萨市| 沙雅县| 灵山县| 怀安县| 荣成市| 和田县| 东宁县| 云安县| 普兰店市| 旬邑县| 开原市| 望城县| 五家渠市| 恩平市| 万盛区| 镇宁|