TransX 一個小巧玲瓏的 vue 元件切換動畫庫

TNTWEB發表於2021-11-01

TNTWeb - 全稱騰訊新聞前端團隊,組內小夥伴在Web前端、NodeJS開發、UI設計、移動APP等大前端領域都有所實踐和積累。

目前團隊主要支援騰訊新聞各業務的前端開發,業務開發之餘也積累沉澱了一些前端基礎設施,賦能業務提效和產品創新。

團隊倡導開源共建,擁有各種技術大牛,團隊Github地址:https://github.com/tnfe

一、介紹

二、安裝

npm install transx
or
yarn add transx
複製程式碼

三、使用

<!-- 包裹動畫元素 -->
<trans-x
  :time="time"
  :delay="delay"
  :autoplay="autoplay"
  :loop="loop"
  :nextTransition="nextTransition"
  :prevTransition="prevTransition"
  ref="transx"
  @over="over"
  @transitionend="transitionEnd"
>
  <div class="comp" v-for="(item, index) in items" :key="index" :index="index + 1"></div>
</trans-x>

複製程式碼
import TransX from "transx";

export default {
  components: {
    TransX
  },
  data() {
    return {
      time: 0.6,
      loop: true,
      autoplay: 1000,
      delay: -1,
      nextTransition: "fadeIn",
      prevTransition: "fadeIn",
      defaultIndex: 0
    }
  }
}
複製程式碼

四、支援引數

引數說明型別預設值備註
time動畫時長number0.6單位秒
loop是否迴圈展現booleantrue
autoplay是否自動迴圈boolean, numberfalseautoplay傳遞為true時,會賦予預設值1000,單位毫秒
delay動畫間隔number-1
defaultIndex預設顯示第幾張number0
nextTransition下一個的動畫,動畫種類見下方stringmoveLeftBack
prevTransition上一個的動畫,動畫種類見下方stringmoveRightBack

四、支援事件

  • over - 跳轉到了邊界後的回撥,當在第一頁繼續上翻和在最後一頁繼續下翻時呼叫
  over: function(isEnd) {
    console.log('邊界到了', isEnd);
  }
複製程式碼

** 說明:當邊界為翻到第一頁時isEnd為false,當邊界為翻到最後一頁時isEnd為true,

  • transitionend - 動畫結束時的回撥,在動畫結束後呼叫,引數為當前的索引,值從0開始
  transitionEnd: function(currentIndex) {
    console.log("當前到第幾頁了: ", currentIndex);
  }
複製程式碼

五、支援API

  • goto - 跳轉到第幾頁,引數為頁碼標識,索引從0開始
    this.$refs.transx.goto(3); // 跳轉到第四頁
複製程式碼
  • prev - 跳轉到上一頁
    // 不傳參
    this.$refs.transx.prev();
    // 傳參
    this.$refs.transx.prev({
        time: 0.6,
        delay: -1,
        transition: "moveLeftQuart", // 參考下面[支援動畫種類]
    });
複製程式碼
  • next - 跳轉到下一頁
    // 不傳參
    this.$refs.transx.next();
    // 傳參
    this.$refs.transx.next({
        time: 0.6,
        delay: -1,
        transition: "moveLeftQuart", // 參考下面[支援動畫種類]
    });
複製程式碼

六、支援的動畫型別

目前共支援24種動畫型別,具體選擇哪種動畫型別,可以參考例子codesanbox,多試試,說不定有意外驚喜哦。下面放幾個例子給大家看看:

  • fadeIn

  • flip

  • shuttleRight

  • zoomRotateIn

七、說明

  • 目前只支援Vue2,後續會升級支援Vue3,
  • 在使用過程中如果遇到什麼問題,可以隨時提交issue,issue直達

八、團隊

TNTWeb - 騰訊新聞前端團隊,TNTWeb致力於行業前沿技術探索和團隊成員個人能力提升。為前端開發人員整理出了小程式以及web前端技術領域的最新優質內容,每週更新✨,歡迎star,github地址:https://github.com/tnfe/TNT-Weekly

logo.png

相關文章