vue3手動設(shè)置滾動條位置自動定位功能

從B頁面進(jìn)行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,這樣頁面初始化滾動條位置會改變。
第二,找到當(dāng)前職位的高度,也要等職位列表數(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;
獲取當(dāng)前職位,當(dāng)前職位會有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ù)加載完后獲取當(dāng)前選中的元素,通過.offsetHeight獲取元素的高度
到此這篇關(guān)于vue3手動設(shè)置滾動條位置自動定位功能的文章就介紹到這了,更多相關(guān)vue手動設(shè)置滾動條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue插件開發(fā)之使用pdf.js實現(xiàn)手機(jī)端在線預(yù)覽pdf文檔的方法
這篇文章主要介紹了vue插件開發(fā)之使用pdf.js實現(xiàn)手機(jī)端在線預(yù)覽pdf文檔的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
解決element-ui table設(shè)置列fixed時X軸滾動條無法拖動問題
這篇文章主要介紹了解決element-ui table設(shè)置列fixed時X軸滾動條無法拖動問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
在Vue中使用deep深度選擇器修改element UI組件的樣式
這篇文章主要介紹了在Vue中使用deep深度選擇器修改element UI組件的樣式,本文分為兩種方法給大家介紹,在這小編比較推薦使用第二種使用 deep 深度選擇器,感興趣的朋友跟隨小編一起看看吧2022-12-12
VUE搭建分布式醫(yī)療掛號系統(tǒng)后臺管理頁面示例步驟
這篇文章主要為大家介紹了分布式醫(yī)療掛號系統(tǒng)之搭建后臺管理系統(tǒng)頁面,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
vue3+ts+axios+pinia實現(xiàn)無感刷新方式
這篇文章主要介紹了vue3+ts+axios+pinia實現(xiàn)無感刷新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
關(guān)于json-bigint處理大數(shù)字問題
這篇文章主要介紹了關(guān)于json-bigint處理大數(shù)字問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
vue中使用keep-alive動態(tài)刪除已緩存組件方式
這篇文章主要介紹了vue中使用keep-alive動態(tài)刪除已緩存組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

