原生JS實(shí)現(xiàn)Vue transition fade過(guò)渡動(dòng)畫(huà)效果示例
Vue過(guò)渡動(dòng)畫(huà)
Vue有一個(gè)過(guò)渡動(dòng)畫(huà),很多網(wǎng)頁(yè)都在用,主要是體驗(yàn)還不錯(cuò),所以很多使用Vue構(gòu)建的頁(yè)面如果考慮使用動(dòng)畫(huà),基本就會(huì)使用這個(gè)fade動(dòng)畫(huà),我現(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)畫(huà)效果是通過(guò)CSS的動(dòng)畫(huà)來(lái)實(shí)現(xiàn)的,而不是使用原生JavaScript逐幀處理動(dòng)畫(huà)。這種方式可以更方便地使用CSS來(lái)定義和管理動(dòng)畫(huà)效果,但具體的實(shí)現(xiàn)方式會(huì)根據(jù)你的需求和設(shè)計(jì)來(lái)定制。你可以根據(jù)需要進(jìn)行調(diào)整和擴(kuò)展,以滿(mǎn)足你的具體需求。'},
{'Page2': '在上面的示例中,我們添加了一個(gè)名為fade的CSS類(lèi),用于應(yīng)用淡入淡出的動(dòng)畫(huà)效果。使用animation屬性指定了名為fadeAnimation的動(dòng)畫(huà),并設(shè)置了持續(xù)時(shí)間為0.5秒。@keyframes規(guī)則定義了fadeAnimation動(dòng)畫(huà)的關(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)畫(huà)效果示例的詳細(xì)內(nèi)容,更多關(guān)于Vue transition fade過(guò)渡動(dòng)畫(huà)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Element通過(guò)v-for循環(huán)渲染的form表單校驗(yàn)的實(shí)現(xiàn)
日常業(yè)務(wù)開(kāi)發(fā)中,form表單校驗(yàn)是一個(gè)很常見(jiàn)的問(wèn)題,本文主要介紹了Element通過(guò)v-for循環(huán)渲染的form表單校驗(yàn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
vue中$event使用之獲取當(dāng)前元素及相關(guān)元素
這篇文章主要介紹了vue中$event使用之獲取當(dāng)前元素及相關(guān)元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vue.js指令v-model實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了vue.js指令v-model實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
Vue+Vuex實(shí)現(xiàn)自動(dòng)登錄的知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理的是關(guān)于Vue+Vuex實(shí)現(xiàn)自動(dòng)登錄的知識(shí)點(diǎn)詳解,需要的朋友們可以學(xué)習(xí)下。2020-03-03
vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個(gè)下載按鈕(操作方法)
這篇文章主要介紹了vue中關(guān)于element的el-image 圖片預(yù)覽功能增加一個(gè)下載按鈕,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04

