vue-设置页面滚动高度不生效问题处理


首先,我遇到的问题是 无法保留(B)页面滚动的位置(scrollTop ) 无法赋值?!

黄色框是滚动部分(非最外层)

参考:https://www.csdn.net/tags/OtDakg2sOTA3NDktYmxvZwO0O0OO0O0O.html

看完我以为我写的没毛病,但是我没有使用$nextTick,setTimeout这两个方法,而是直接写里面的内容,造成无法给scrollTop赋值;

beforeRouteEnter(to, from, next) {
        next((vm) => {
            if (from.name == "ComputerroomDetails") {
                vm.scrollIndex = sessionStorage.getItem("ScrollIndexPositionY");
                // vm.$el.scrollTop = Number(vm.scrollIndex);//$el这是获取外层元素
                // document.getElementsByClassName('content').scrollTop = Number(vm.scrollIndex);//一开始这么写但是无法赋值
                // document.querySelector('.content').scrollTop = Number(vm.scrollIndex);//同上
          // document.querySelector('.content').scrollTop = 100;
          vm.$nextTick(()=>{
              setTimeout(()
=>{
                let content
= vm.$el.querySelector('.content') ;
                content.scrollTop
= vm.scrollIndex; //这是获取到的滚动位置赋值
                console.log(
"scrollTop",content.scrollTop);
              },
100) })
            }
          }
) },

差点就放弃这个方法了,看来还是得全套才行。感谢原作者,我就做个小笔记哈!

补充获取滚动位置的方法:

 
html:
 
class="content" @scroll="scroll">
methods:{ // 滚动位置 scroll(event) { this.scrollIndex = event.target.scrollTop; console.log('scroll', event.target.scrollTop) } }
vue