vue2.0中怎么设置元素滚动?

首页有一个列表,我可以进入新的页面新增列表数据,然后回到首页,我需要让页面滚动到可视最新增加那个,我是把列表数据放在vuex中,在首页监听List长度,然后让容易scrollTop = List.length * 单条数据的高度,但是这样我不行。

公司虚拟机开发的, 不然上班就提问了,大概需求就是这样,其实就是每次增加了一条数据,回到首页,数据多了肯定有滚动条,增加了回来需要可视到最新那条。

代码也没有办法提供,因为工作都是虚拟机。思路就是这样的,List列表我是抽出来了,单独一个组件,每次增加存在vuex里

回家复现的代码
image.png

继续补充
image.png
我是想让新增的这个项自动滚动到可视区,不需要我自己回到首页自己滚动

阅读 1.2k
2 个回答

或许可行:

function scrollTo(element){
    element.setAttribute('tabindex', 1);
    element.focus();
    requestAnimationFrame(() => {
        element.setAttribute('tabindex', undefined);
    });
}

你首页有用keepalive缓存吗?你添加的数据是插入到列表末尾吗?如果是keepalive缓存,就在activated里去执行,不是就在mounted里执行,然后如果是插入末尾,甚至可以不需要获取高度,直接设置scrollTopNumber.MAX_SAFE_INTEGER即可。
监听不行是因为你list改变时你还没回到首页,dom都没渲染上去,你需要保证dom渲染完毕了再去滚动

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏