在網(wǎng)頁開發(fā)中,很多頁面內(nèi)容會比較長,用戶需要不停地向下滾動(dòng)才能看到整個(gè)頁面。為了提高用戶體驗(yàn),我們通常會添加返回頂部的按鈕,使用戶可以快速返回頁面頂部。而在Vue中,我們可以使用組件的方式來實(shí)現(xiàn)這個(gè)功能。
<template>
<div class="back-to-top" v-if="isVisible" @click="scrollToTop">
<i class="fas fa-chevron-up"></i>
</div>
</template>
<script>
export default {
data() {
return {
isVisible: false
}
},
created() {
window.addEventListener('scroll', this.handleScroll);
},
destroyed() {
window.removeEventListener('scroll', this.handleScroll);
},
methods: {
handleScroll() {
this.isVisible = window.pageYOffset >100;
},
scrollToTop() {
window.scrollTo({
top: 0,
behavior: "smooth"
});
}
}
}
</script>
<style scoped>
.back-to-top {
position: fixed;
bottom: 30px;
right: 30px;
cursor: pointer;
opacity: 0.5;
transition: opacity 0.3s;
}
.back-to-top:hover {
opacity: 1;
}
.fa-chevron-up {
font-size: 20px;
}
</style>
以上是一個(gè)簡單的返回頂部組件,它主要由三個(gè)部分組成:1. template模板部分,2. scriptjs邏輯部分,3. style樣式部分。在template模板部分,我們定義了一個(gè)div元素,用于放置返回頂部的按鈕,當(dāng)在頁面滑動(dòng)至一定高度時(shí),按鈕才會顯示。在scriptjs邏輯部分,我們添加了handleScroll事件,監(jiān)測頁面滑動(dòng)的高度并修改isVisible屬性的值,以控制按鈕的顯示與隱藏;我們還定義了scrollToTop事件,用于讓頁面滑動(dòng)到頂部;最后,在style樣式部分,我們設(shè)置了按鈕的位置、鼠標(biāo)懸停時(shí)透明度的改變和icon的大小。
這個(gè)組件還有很多可以改進(jìn)的地方,例如可以添加回到上一個(gè)頁面的功能、添加動(dòng)畫效果等。但是無論怎樣,這個(gè)組件都可以提升網(wǎng)頁的用戶體驗(yàn),同時(shí)也給我們提供了一個(gè)學(xué)習(xí)Vue組件的好的案例。