原生JS實(shí)現(xiàn)Vue transition fade過(guò)渡動(dòng)畫效果示例
Vue過(guò)渡動(dòng)畫
Vue有一個(gè)過(guò)渡動(dòng)畫,很多網(wǎng)頁(yè)都在用,主要是體驗(yàn)還不錯(cuò),所以很多使用Vue構(gòu)建的頁(yè)面如果考慮使用動(dòng)畫,基本就會(huì)使用這個(gè)fade動(dòng)畫,我現(xiàn)在使用原生的JavaScript來(lái)實(shí)現(xiàn)。
代碼
<style>
.page {
opacity: 0;
transition: opacity 0.5s, transform 0.5s;
transform: translateY(100%);
}
.page.visible {
opacity: 1;
transform: translateY(0);
}
.fade {
opacity: 0;
transform: translateY(10%);
transition: opacity 0.5s, transform 0.5s;
}
@keyframes fadeAnimation {
0% { opacity: 0; transform: translateY(10%); }
100% { opacity: 1; transform: translateY(0); }
}
.fade.show {
opacity: 1;
transform: translateY(0);
}
#page-content{
width: 800px;
}
#app{
width: 800px;
height: 600px;
margin: 100px auto;
padding: 20px 20px;
background: #eee;
}
#app .nav{
width: 200px;
height: 600px;
float: left;
}
#app .nav button{
width: 200px;
height: 40px;
margin: 0 auto 10px;
background: #39f;
color: #fff;
font-size: 15px;
outline: none;
cursor: pointer;
border: none;
border-radius: 5px;
}
#page-content{
width: 550px;
height: 600px;
float: right
}
</style>
<script type="text/javascript">
var pageData = [
{'Page1': '請(qǐng)注意,上述示例中的動(dòng)畫效果是通過(guò)CSS的動(dòng)畫來(lái)實(shí)現(xiàn)的,而不是使用原生JavaScript逐幀處理動(dòng)畫。這種方式可以更方便地使用CSS來(lái)定義和管理動(dòng)畫效果,但具體的實(shí)現(xiàn)方式會(huì)根據(jù)你的需求和設(shè)計(jì)來(lái)定制。你可以根據(jù)需要進(jìn)行調(diào)整和擴(kuò)展,以滿足你的具體需求。'},
{'Page2': '在上面的示例中,我們添加了一個(gè)名為fade的CSS類,用于應(yīng)用淡入淡出的動(dòng)畫效果。使用animation屬性指定了名為fadeAnimation的動(dòng)畫,并設(shè)置了持續(xù)時(shí)間為0.5秒。@keyframes規(guī)則定義了fadeAnimation動(dòng)畫的關(guān)鍵幀。在0%時(shí),頁(yè)面內(nèi)容元素的透明度為0,向下移動(dòng)50%;在100%時(shí),透明度為1,不再進(jìn)行垂直位移。這樣就實(shí)現(xiàn)了從下往上的淡入效果。'},
{'Page3': 'avaScript部分的changePage函數(shù)接收一個(gè)頁(yè)面索引作為參數(shù),根據(jù)索引從pageData數(shù)組中獲取相應(yīng)的頁(yè)面數(shù)據(jù)。然后,我們通過(guò)操作page-content元素的textContent屬性,將頁(yè)面內(nèi)容更新為對(duì)應(yīng)頁(yè)面的值。'}
];
window.onload=function(){
// 進(jìn)入頁(yè)面加載
changePage(0);
}
function changePage(pageIndex) {
var pageContent = document.getElementById('page-content');
var page = pageData[pageIndex];
var key = Object.keys(page)[0];
var value = page[key];
pageContent.classList.remove('show');
setTimeout(function() {
pageContent.textContent = value;
pageContent.classList.add('show');
}, 300);
}
</script>
<div id="app">
<div class="nav">
<button onclick="changePage(0)">Page 1</button>
<button onclick="changePage(1)">Page 2</button>
<button onclick="changePage(2)">Page 3</button>
</div>
<div id="page-content" class="fade"></div>
</div>效果
動(dòng)態(tài)圖:

以上就是原生JS實(shí)現(xiàn)Vue transition fade過(guò)渡動(dòng)畫效果示例的詳細(xì)內(nèi)容,更多關(guān)于Vue transition fade過(guò)渡動(dòng)畫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動(dòng)現(xiàn)象(示例代碼)
在Vue中循環(huán)生成表格數(shù)據(jù)時(shí),可能會(huì)遇到數(shù)據(jù)聯(lián)動(dòng)的現(xiàn)象,即修改一個(gè)表格中的數(shù)據(jù)后,其他表格的數(shù)據(jù)也會(huì)跟著變化,這種現(xiàn)象通常是因?yàn)樗斜砀竦臄?shù)據(jù)引用了同一個(gè)對(duì)象或數(shù)組導(dǎo)致的,本文介紹vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動(dòng)現(xiàn)象,感興趣的朋友一起看看吧2024-11-11
vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
這篇文章主要介紹了vue學(xué)習(xí)之Vue-Router用法,結(jié)合實(shí)例形式分析了Vue-Router路由原理與常見(jiàn)操作技巧,需要的朋友可以參考下2020-01-01
淺談vue3中effect與computed的親密關(guān)系
這篇文章主要介紹了淺談vue3中effect與computed的親密關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
vue中axios的post請(qǐng)求,415錯(cuò)誤的問(wèn)題
這篇文章主要介紹了vue中axios的post請(qǐng)求,415錯(cuò)誤的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Vue?Router解決多路由復(fù)用同一組件頁(yè)面不刷新問(wèn)題(場(chǎng)景分析)
這篇文章主要介紹了Vue?Router解決多路由復(fù)用同一組件頁(yè)面不刷新問(wèn)題,多路由復(fù)用同一組件的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Vue實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)el-select組件的示例代碼
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)el-select組件的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的的可以參考一下2023-02-02

