欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue 路由 滾 頂部

當(dāng)使用Vue構(gòu)建單頁(yè)應(yīng)用時(shí),一個(gè)常見(jiàn)的需求就是希望用戶能夠快速返回頁(yè)面的頂部。Vue路由提供了一個(gè)簡(jiǎn)單的辦法來(lái)實(shí)現(xiàn)這個(gè)功能,以下是一個(gè)展示如何滾動(dòng)到頁(yè)面頂部的例子。

export default {
mounted() {
window.scrollTo(0, 0);
}
}

上述代碼使用了window.scrollTo()方法來(lái)滾動(dòng)到頁(yè)面的頂部。該方法的前兩個(gè)參數(shù)分別表示新的文檔的左上角相對(duì)于當(dāng)前窗口左上角的位置。

但是該方法的一個(gè)問(wèn)題是不支持平滑滾動(dòng)。用戶在使用時(shí)可能會(huì)感到突兀,因此我們可以使用CSS3的transition來(lái)實(shí)現(xiàn)平滑滾動(dòng)。

export default {
mounted() {
setTimeout(() =>{
let top = document.getElementById('app').offsetTop
window.scrollTo({
top,
behavior: "smooth"
})
}, 0)
}
}

在上方代碼中,我們首先使用了setTimeout來(lái)確保頁(yè)面能夠完全加載。然后獲取了vue根節(jié)點(diǎn)#app元素在文檔流中的位置。最后使用scrollTo()的新實(shí)現(xiàn)方式來(lái)平滑滾動(dòng)到頁(yè)面的頂部。

當(dāng)然,如果我們使用Vue-Router的話,我們可以通過(guò)傳遞一個(gè)路由鉤子函數(shù)來(lái)實(shí)現(xiàn)滾動(dòng)到頁(yè)面頂部。下面是一個(gè)使用Vue-Router的例子:

const router = new VueRouter({
routes: [
{
path: '/',
name: 'home',
component: Home,
meta: {
title: 'Home',
scrollToTop: true
}
}
]
})
router.beforeEach((to, from, next) =>{
document.title = to.meta.title
if (to.matched.some(route =>route.meta.scrollToTop)) {
setTimeout(() =>{
window.scrollTo({
top: 0,
behavior: "smooth"
})
}, 0)
}
next()
})

在上述代碼中,我們?cè)赩ue-Router定義的meta對(duì)象中增加了一個(gè)scrollToTop屬性。當(dāng)路由到這個(gè)頁(yè)面時(shí),路由鉤子函數(shù)會(huì)檢測(cè)是否需要滾動(dòng)到頁(yè)面的頂部。如果是的話,就使用scrollTo()方法來(lái)實(shí)現(xiàn)滾動(dòng)到頁(yè)面的頂部。