前端vue3-手动设置滚动条位置/主动定位

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

从B页面进行xx操作后需要跳转到A页面,并定位到AA职位,上图为A页面。
A页面的左侧是div,内层包裹List组件

给div定义ref=leftRef,在代码中写如下:
  1.   function scrollTop() {
  2.     if (leftRef.value) {
  3.       console.log('99', leftRef.value);
  4.       nextTick(() => {
  5.         leftRef.value.scrollTop = 1000;
  6.         // scrollBy(0, document.body.scrollWidth);
  7.       });
  8.     }
  9.   }
  10. onMounted(async () => {
  11.     if (router.currentRoute.value.query.id) {
  12.       positionChooseCode.value = router.currentRoute.value.query.id;
  13.       positionStatusValue.value = router.currentRoute.value.query.id;
  14.     }
  15.     const positionId = router.currentRoute.value.query.positionId;
  16.     if (!!positionId) {
  17.       cStore.setPositionId(positionId);
  18.     }
  19.     console.log('mounted--positionId', positionId);
  20.     await getPositionDictionary(positionChooseCode.value, '');
  21.     await getDictionaries();
  22.     scrollTop();
  23.   });
复制代码
第一,需要等待数据渲染完成后,再调用scrollTop,设置scrollTop=1000,如许页面初始化滚动条位置会改变。
第二,找到当前职位的高度,也要等职位列表数据渲染完成后,获取
  1.     console.log('positionList.value', positionList.value);
  2.     rowItemId.value = item.id;
  3.     //找到前面有多少个元素
  4.     let index = positionList.value.findIndex((it) => it.id === rowItemId.value);
  5.     console.log('找到前面有多少个元素', index + 1);
  6.     num.value = index - 2;
  7. 获取当前职位,当前职位会有class==red的,通过class获取ele;
  8.  const sortableEles = document.querySelectorAll('.red');
  9.       console.log(sortableEles);
  10.       let itemHeight = 0;
  11.       if (sortableEles.length > 0) {
  12.         const firstListItem = sortableEles[0];
  13.         itemHeight = firstListItem.offsetHeight; // 获取元素的高度,包括内边距和边框
  14.         console.log('第一个列表项的高度:', itemHeight);
  15.         console.log(' num.value', num.value);
  16.       }
复制代码
完备的scrollTop方法如下

总结:
   滚动条要滚动起来
选中含有滚动条的元素,定义一个const leftRef = ref(null),在数据加载完成后设置leftRef.value.scrollTop
    滚动条的位置
等待数据加载完后获取当前选中的元素,通过.offsetHeight获取元素的高度
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表