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

在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無(wú)縫滾動(dòng)的示例代碼

 更新時(shí)間:2020年11月27日 08:35:14   作者:南客Nanky  
這篇文章主要介紹了在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無(wú)縫滾動(dòng)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、效果預(yù)覽

最近在做一個(gè)活動(dòng)頁(yè)面,遇到幸運(yùn)用戶中獎(jiǎng)的滾動(dòng)公告需求。下面是實(shí)現(xiàn)效果:

(gif錄制略顯卡頓,實(shí)際效果很流暢)

二、無(wú)縫滾動(dòng)原理

1、容器寬高固定,超出內(nèi)容隱藏;
2、內(nèi)容準(zhǔn)備2份,現(xiàn)參與滾動(dòng)的內(nèi)容有A、B兩份,向左滾動(dòng);
3、滑動(dòng)過(guò)程中,B份緊隨A份之后,營(yíng)造出無(wú)縫滾動(dòng)回來(lái)的效果;
4、在A部分內(nèi)容完全滾出容器的一瞬間,立刻將AB內(nèi)容位置復(fù)原,由于A、B內(nèi)容一模一樣,這個(gè)復(fù)原過(guò)程很難看出來(lái);
5、循環(huán)第3步;

三、代碼

1、html部分

<template>
  <div class="lucky-user">  <!-- 容器 -->
    <ul class="user-list" :style="`animation-duration: ${luckyUsers.length * 4}s;`">  <!-- 內(nèi)容區(qū)容器 -->
     <li v-for="(item, index) in luckyUsers" :key="index">{{ item }}</li>   <!-- 內(nèi)容A -->
     <li v-for="(item, index) in luckyUsers" :key="index+'copy'">{{ item }}</li>  <!-- 內(nèi)容B -->
    </ul>
  </div>
</template>

2、CSS部分

.lucky-user {
  width: 540px; //容器定寬高
  height: 30px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 30px;
  color: #E9B65F;
  overflow: hidden; //超出內(nèi)容隱藏
  .user-list {
    width: fit-content; // Q1
    white-space: nowrap; // 內(nèi)容不換行
    animation-name: seamless-scrolling; // Q3
    animation-timing-function: linear; // 動(dòng)畫(huà)速度曲線,勻速
    animation-iteration-count: infinite; // 動(dòng)畫(huà)循環(huán)無(wú)限次播放
    li {
      display: inline-block;
      margin-right: 30px;
    }
  }
}

@keyframes seamless-scrolling {
  0% {
    transform: translateX(0px);
  }
  100% {
    transform: translateX(-50%); //Q2
  }
}

Q1:因?yàn)闈L動(dòng)內(nèi)容一般都不是固定的,需要接口獲取,所以內(nèi)容區(qū)的寬度也就無(wú)法確定,這里使用CSS3的新特性width: fit-content,使寬度自適應(yīng)內(nèi)部?jī)?nèi)容,至于為什么這里需要設(shè)置寬度屬性,見(jiàn)下文
Q2:設(shè)置動(dòng)畫(huà)。由于內(nèi)容區(qū)實(shí)際有AB兩份,B是A的副本,所以一段動(dòng)畫(huà)的終點(diǎn)就是內(nèi)容區(qū)向左位移50%(內(nèi)容區(qū)width的50%),這也就解釋了Q1中為什么一定要設(shè)置寬度屬性了:如果不設(shè)置,width的值不會(huì)隨內(nèi)容撐開(kāi),此時(shí)的50%是父容器width的50%,終點(diǎn)值就錯(cuò)了
Q3:為什么animation不采用簡(jiǎn)寫(xiě)形式,而是拆開(kāi)? 因?yàn)閍nimation-duration 動(dòng)畫(huà)時(shí)長(zhǎng)不能固定,如果接口獲取到的數(shù)據(jù)很多,動(dòng)畫(huà)時(shí)長(zhǎng)固定5s,那滾動(dòng)地得有多快?所以animation-duration采用屬性綁定形式,根據(jù)數(shù)據(jù)長(zhǎng)度進(jìn)行延長(zhǎng)  :style="animation-duration: ${luckyUsers.length * 4}s;" 具體乘幾看自己喜歡。
我也試過(guò)采用簡(jiǎn)寫(xiě)形式進(jìn)行style屬性綁定,結(jié)果發(fā)現(xiàn)動(dòng)畫(huà)不生效。

3、JS部分

export default {
 name: 'app',
  data() {
   return {
    luckyUsers: []
   }
  },
  created() {
   this.getLuckyUsersList()
  },
  methods: {
   getLuckyUsersList () {
     //調(diào)接口拿取數(shù)據(jù)
     this.luckyUsers = [
      '000000抽中了xxx獎(jiǎng)品',
      '111111抽中了xxx獎(jiǎng)品',
      '222222抽中了xxx獎(jiǎng)品',
     ]
    }
  }
}

四、總結(jié)

無(wú)縫滾動(dòng)的實(shí)現(xiàn)主要借助了css3中的animation、width:fit-content自適應(yīng)屬性、translate位移等特性;
從實(shí)現(xiàn)原理上看,其實(shí)就是一個(gè)欺騙眼睛的小伎倆而已~

到此這篇關(guān)于在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無(wú)縫滾動(dòng)的示例代碼的文章就介紹到這了,更多相關(guān)Vue CSS3無(wú)縫滾動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue自定義全局共用函數(shù)詳解

    vue自定義全局共用函數(shù)詳解

    今天小編就為大家分享一篇vue自定義全局共用函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue.js動(dòng)態(tài)組件和插槽的使用匯總

    vue.js動(dòng)態(tài)組件和插槽的使用匯總

    這篇文章主要介紹了vue.js動(dòng)態(tài)組件和插槽的使用匯總,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • VUE v-bind 數(shù)據(jù)綁定的示例詳解

    VUE v-bind 數(shù)據(jù)綁定的示例詳解

    這篇文章主要介紹了VUE v-bind 數(shù)據(jù)綁定,簡(jiǎn)單點(diǎn)來(lái)說(shuō)就是對(duì) HTML 中的元素,我們可以使用 v-bind 來(lái)進(jìn)行綁定和動(dòng)態(tài)的數(shù)據(jù)輸出,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 你不知道的Vue技巧之--開(kāi)發(fā)一個(gè)可以通過(guò)方法調(diào)用的組件(推薦)

    你不知道的Vue技巧之--開(kāi)發(fā)一個(gè)可以通過(guò)方法調(diào)用的組件(推薦)

    這篇文章主要介紹了你不知道的Vue技巧之--開(kāi)發(fā)一個(gè)可以通過(guò)方法調(diào)用的組件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue中接口域名配置為全局變量的實(shí)現(xiàn)方法

    vue中接口域名配置為全局變量的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇vue中接口域名配置為全局變量的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue循環(huán)el-button實(shí)現(xiàn)點(diǎn)擊哪個(gè)按鈕,那個(gè)按鈕就變色

    vue循環(huán)el-button實(shí)現(xiàn)點(diǎn)擊哪個(gè)按鈕,那個(gè)按鈕就變色

    這篇文章主要介紹了vue循環(huán)el-button實(shí)現(xiàn)點(diǎn)擊哪個(gè)按鈕,那個(gè)按鈕就變色問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue中component組件的props使用詳解

    vue中component組件的props使用詳解

    本篇文章主要介紹了vue中component組件的props使用詳解,這里整理了詳細(xì)的用法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-09-09
  • 解決vuex數(shù)據(jù)異步造成初始化的時(shí)候沒(méi)值報(bào)錯(cuò)問(wèn)題

    解決vuex數(shù)據(jù)異步造成初始化的時(shí)候沒(méi)值報(bào)錯(cuò)問(wèn)題

    今天小編大家分享一篇解決vuex數(shù)據(jù)異步造成初始化的時(shí)候沒(méi)值報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue響應(yīng)式系統(tǒng)的原理詳解

    Vue響應(yīng)式系統(tǒng)的原理詳解

    這篇文章主要為大家介紹了Vue響應(yīng)式系統(tǒng)的原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • Vue中的生命周期介紹

    Vue中的生命周期介紹

    這篇文章介紹了Vue中的生命周期,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論