【Element】實現基于 Element UI el-tabs 的左右滑動動畫

實現基于 Element UI el-tabs 的左右滑動動畫

引言

在構建現代 web 應用時,為用戶提供平滑的動畫效果是提升用戶體驗的關鍵。本篇博客將詳細介紹如何在使用 Vue 以及 Element UI 時,實現一個具有左右滑動效果的 tab 切換動畫。

使用 el-tabs 創建 tab 組件

首先,我們需要創建一個基礎的 el-tabs 組件,用于展示不同的內容區域。

<template><el-tabs v-model="activeName" @tab-click="handleTabClick"><el-tab-pane label="cpu" name="cpu"><cpu :class="tabContentClass"></cpu></el-tab-pane><el-tab-pane label="內存子系統" name="內存子系統"><nczxt :class="tabContentClass"></nczxt></el-tab-pane></el-tabs>
</template>

跟蹤當前和上一次激活的 tab

我們希望了解用戶是向左滑動還是向右滑動,為此需要知道當前和之前激活的 tab 的索引。

<script>
export default {data() {return {activeName: 'cpu',previousIndex: 0, // 上一個激活 tab 的索引currentIndex: 0 // 當前激活 tab 的索引};},methods: {handleTabClick(tab) {this.previousIndex = Number(this.currentIndex);this.currentIndex = Number(tab.index);this.$nextTick(() => {this.previousIndex = Number(this.currentIndex);});}},computed: {// 根據方向設置動畫樣式tabContentClass() {return {'slide-enter-active': true,'slide-leave-active': this.currentIndex > this.previousIndex,'slide-enter': this.currentIndex < this.previousIndex,'slide-leave-to': this.currentIndex > this.previousIndex};}}
};
</script>

動畫樣式

通過 CSS 我們定義了滑動進入以及滑動離開時的動畫效果。

.slide-enter-active, .slide-leave-active {transition: all 0.5s;
}
.slide-enter {transform: translateX(100%);opacity: 0;
}
.slide-leave-to {transform: translateX(-100%);opacity: 0;
}

.slide-enter-active 和 .slide-leave-active 類負責定義動畫的持續時間。
.slide-enter 類定義了新內容滑入的起始狀態。
.slide-leave-to 類定義了舊內容滑出的終止狀態。

結語

這樣,我們就利用 Vue 的 computed 計算屬性以及 CSS 過渡效果實現了一個簡單而流暢的左右滑動動畫效果,以增強 el-tabs 組件的交互體驗。注意,這個效果只是一個基礎的左右滑動動畫,可以根據實際需要進行調整和增強。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718694.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718694.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718694.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter 中的 SliverGrid 和 GridView:區別與使用場景

在 Flutter 中&#xff0c;SliverGrid 和 GridView 都是用于展示網格布局的組件&#xff0c;但它們有著不同的特點和適用場景。本文將介紹它們之間的區別以及在實際開發中的使用場景。 SliverGrid 和 GridView 的區別 SliverGrid&#xff1a; SliverGrid 是 CustomScrollView …

第十五屆藍橋杯第三期模擬賽題單

目錄 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題: 第五題&#xff1a; 第六題&#xff1a; 第七題 第八題 第九題 第十題 第一題 【問題描述】 請問 2023 有多少個約數&#xff1f;即有多少個正整數&#xff0c;使得 2023 是這個正整數的整數倍…

FolkMQ 是怎樣進行消息的事務處理?

FolkMQ 提供了二段式提交的事務提交的機制&#xff08;TCC 模型&#xff09;。允許生產者在發送消息時綁定到一個事務中并接收事務的管理&#xff0c;以確保消息的原子性&#xff08;要么全成功&#xff0c;要么全失敗&#xff09;。在 FolkMQ 中&#xff0c;事務是通過 MqTran…

1、EmlogCms代碼審計

一、SQL注入 1、后臺標簽刪除處存在1處sql注入 漏洞條件 ● 漏洞url: http://emlog6.0.com/admin/tag.php?actiondell_all_tag ● 漏洞參數&#xff1a;tag[xx] ● 是否存在限制&#xff1a;無 ● 是否還有其他條件&#xff1a;actiondell_all_tag,token復現 POST /admin…

擼chatgpt3.5 api backend-api 對接wxbot

功能是實現 web 轉api 對接wxbot用&#xff0c; 直接上代碼&#xff0c; 1.獲取wss url def get_register_websocket():# 請求頭url "https://chat.openai.com/backend-api/register-websocket"payload {}headers {Authorization: Bearer eyJhbGxxxxxxxxxxxxx…

docker的網絡配置

文章目錄 1、網絡模式1.1、bridge模式(默認模式)1.2、host模式 2、bridge模式3、自定義網絡 1、網絡模式 Docker在創建容器時有四種網絡模式&#xff1a;bridge/host/container/none&#xff0c;bridge為默認不需要用–net去指定&#xff0c;其他三種模式需要在創建容器時使用…

【力扣 - 最長連續數組】

題目描述 給定一個未排序的整數數組 nums &#xff0c;找出數字連續的最長序列&#xff08;不要求序列元素在原數組中連續&#xff09;的長度。 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1&#xff1a; 輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&…

Linux命令:uniq命令和wc命令

目錄 1 uniq命令1.1 uniq簡介1.2說明1.3案例1、默認輸出2、輸出重復行3、比較一行中的部分字符4、忽略大小寫5、只顯示唯一的行 2.4 uniq和sort命令配合使用1、文本統計2、統計IP連接數并排序 2 wc命令2.1 wc簡介2.2 說明2.3 案例1、默認輸出2、輸出字節、字符數、單詞數 總結 …

案例介紹:汽車維修系統的信息抽取技術與數據治理應用(開源)

一、引言 在當今汽車產業的快速發展中&#xff0c;軟件已經成為提升車輛性能、安全性和用戶體驗的關鍵因素。從車載操作系統到智能駕駛輔助系統&#xff0c;軟件技術的進步正在重塑我們對汽車的傳統認知。我有幸參與了一個創新項目&#xff0c;該項目專注于開發和集成先進的汽…

關于 svg path 路徑坐標 精度誤差問題

<svg width"2838.739990" height"2482.179932" viewBox"0 0 2838.74 2482.18" fill"none" xmlns"http://www.w3.org/2000/svg" xmlns:xlink"http://www.w3.org/1999/xlink"><path id"矢量 12"…

原理篇-- 定時任務xxl-job-服務端(admin)項目啟動過程--JobRegistryHelper 初始化 (4)

文章目錄 前言一、JobRegistryHelper 作用&#xff1a;二、JobRegistryHelper 源碼介紹&#xff1a;2.1 初始化start() 方法&#xff1a;2.1.1 registryOrRemoveThreadPool 執行器注冊和移除&#xff1a;2.1.2 registryMonitorThread 執行器注冊監控線程&#xff1a; 2.2 toSto…

折線圖實現柱狀陰影背景的demo

這個是一個由官網的基礎折線圖實現的流程&#xff0c;將涉及到的知識點附上個人淺薄的見解&#xff0c;源碼在最后&#xff0c;需要的可自取。 折線圖 成果展示代碼注解參數backgroundColordataZoomlegendtitlexAxisyAxisgridseries 源碼 成果展示 官網的基礎折線圖&#xff…

貓耳語音下載(mediadown)

貓耳語音下載(mediadown) 一、介紹 貓耳語音下載,能夠幫助你下載貓耳音頻節目。如果你是會員,它還能幫你下載會員節目。 二、下載地址 下載:貓耳語音下載(mediadown) 百度網盤下載:貓耳語音下載(mediadown) 三、安裝教程 將下載的文件解壓到D:\xibinhui,D:\Pr…

Unity RectTransform·屏幕坐標轉換

RectTransform轉屏幕坐標 分兩種情況 Canvas渲染模式為Overlay時&#xff0c;使用此方式 public Rect GetScreenCoordinatesOfCorners(RectTransform rt) {var worldCorners new Vector3[4];rt.GetWorldCorners(worldCorners);var result new Rect(worldCorners[0].x,world…

Manomotion 實現AR手勢互動-解決手勢無效的問題

之前就玩過 Manomotion &#xff0c;現在有新需求&#xff0c;重新接入發現不能用了&#xff0c;不管什么辦法&#xff0c;都識別不了手勢&#xff0c;我記得當初是直接調用就可以的。 經過研究發現&#xff0c;新版本SDK改了寫法。下邊就寫一下新版本的調用&#xff0c;并且實…

好書推薦 《Excel函數與公式應用大全for Excel 365 Excel 2021》

一.基本介紹 1.什么是 Excel? Excel 是微軟公司開發的一款電子表格軟件&#xff0c;是 Microsoft Office 套件的一部分。它被廣泛用于數據處理、分析、可視化和管理等方面。Excel 提供了豐富的功能&#xff0c;使用戶能夠創建、編輯、存儲和分享各種類型的數據表格。 2.Exc…

Golang Channel 詳細原理和使用技巧

1.簡介 Channel(一般簡寫為 chan) 管道提供了一種機制:它在兩個并發執行的協程之間進行同步&#xff0c;并通過傳遞與該管道元素類型相符的值來進行通信,它是Golang在語言層面提供的goroutine間的通信方式.通過Channel在不同的 goroutine中交換數據&#xff0c;在goroutine之間…

代碼隨想錄Day66 | 圖的DFS與BFS

代碼隨想錄Day66 | 圖的DFS與BFS DFS797.所有可能的路徑無向圖和有向圖的處理 BFS200.島嶼數量 DFS 文檔講解&#xff1a;代碼隨想錄 視頻講解&#xff1a; 狀態 本質上就是回溯算法。 void dfs(參數) {if (終止條件) {存放結果;return;}for (選擇&#xff1a;本節點所連接的…

『運維備忘錄』之 Shell 內置命令大集合

前言 在 Shell 中&#xff0c;有許多內置命令可用于執行各種任務&#xff0c;包括文件操作、進程管理、環境變量設置等。本文將詳細介紹一些常見的Shell內置命令及其示例用法。 命令描述alias創建命令別名&#xff0c;用于將命令或命令組合關聯到用戶自定義名稱bg將作業放入后…

Qt textBrowser的Html相關

Qt textBrowser的Html相關 Qt textBrowser的Html相關 Qt textBrowser的Html相關 一開始就想要一個簡單的功能&#xff0c;點一下按鈕&#xff0c;添加的文字居中顯示&#xff0c;再點一下按鈕&#xff0c;添加的文字變更顏色居右顯示。 但是&#xff1a; ui->textEdit-&g…