前端vue3手動設(shè)置滾動條位置/自動定位詳細代碼

從B頁面進行xx操作后需要跳轉(zhuǎn)到A頁面,并定位到AA職位,上圖為A頁面。
A頁面的左側(cè)是div,內(nèi)層包裹List組件

給div定義ref=leftRef,在代碼中寫如下:
function scrollTop() {
if (leftRef.value) {
console.log('99', leftRef.value);
nextTick(() => {
leftRef.value.scrollTop = 1000;
// scrollBy(0, document.body.scrollWidth);
});
}
}
onMounted(async () => {
if (router.currentRoute.value.query.id) {
positionChooseCode.value = router.currentRoute.value.query.id;
positionStatusValue.value = router.currentRoute.value.query.id;
}
const positionId = router.currentRoute.value.query.positionId;
if (!!positionId) {
cStore.setPositionId(positionId);
}
console.log('mounted--positionId', positionId);
await getPositionDictionary(positionChooseCode.value, '');
await getDictionaries();
scrollTop();
});第一,需要等待數(shù)據(jù)渲染完成后,再調(diào)用scrollTop,設(shè)置scrollTop=1000,這樣頁面初始化滾動條位置會改變。
第二,找到當前職位的高度,也要等職位列表數(shù)據(jù)渲染完成后,獲取
console.log('positionList.value', positionList.value);
rowItemId.value = item.id;
//找到前面有多少個元素
let index = positionList.value.findIndex((it) => it.id === rowItemId.value);
console.log('找到前面有多少個元素', index + 1);
num.value = index - 2;
獲取當前職位,當前職位會有class==red的,通過class獲取ele;
const sortableEles = document.querySelectorAll('.red');
console.log(sortableEles);
let itemHeight = 0;
if (sortableEles.length > 0) {
const firstListItem = sortableEles[0];
itemHeight = firstListItem.offsetHeight; // 獲取元素的高度,包括內(nèi)邊距和邊框
console.log('第一個列表項的高度:', itemHeight);
console.log(' num.value', num.value);
}
完整的scrollTop方法如下

總結(jié):
滾動條要滾動起來
選中含有滾動條的元素,定義一個const leftRef = ref(null),在數(shù)據(jù)加載完成后設(shè)置leftRef.value.scrollTop
滾動條的位置
等待數(shù)據(jù)加載完后獲取當前選中的元素,通過.offsetHeight獲取元素的高度
到此這篇關(guān)于前端vue3手動設(shè)置滾動條位置/自動定位的文章就介紹到這了,更多相關(guān)vue3手動設(shè)置滾動條位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue如何利用store實現(xiàn)兩個平行組件間的傳值
這篇文章主要介紹了vue如何利用store實現(xiàn)兩個平行組件間的傳值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
解決vue中axios設(shè)置超時(超過5分鐘)沒反應的問題
這篇文章主要介紹了解決vue中axios設(shè)置超時(超過5分鐘)沒反應的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
vue 重塑數(shù)組之修改數(shù)組指定index的值操作
這篇文章主要介紹了vue 重塑數(shù)組之修改數(shù)組指定index的值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue登錄后添加動態(tài)路由并跳轉(zhuǎn)的實踐分享
這篇文章講給大家詳細介紹一下Vue如何實現(xiàn)登錄后添加動態(tài)路由并跳轉(zhuǎn),文章通過代碼示例介紹的非常詳細,對我們的學習或工作有一定的的幫助,需要的朋友可以參考下2023-07-07
vue3中的reactive、readonly和shallowReactive使用詳解
在 Vue3 中,可以使用 shallowReactive 函數(shù)創(chuàng)建一個淺層響應式對象,它接收一個普通對象作為參數(shù),返回一個淺層響應式代理對象,本文給大家介紹vue3中的reactive、readonly和shallowReactive使用,感興趣的朋友跟隨小編一起看看吧2024-04-04

