scrollTop设置后一直为0的解决方案(最全)

scrollTop设置后一直为0的解决方案(最全)

近期在业务中要实现keep-alive记住滚动条位置,发现scrollTop一直为0,排除各个组件的问题后仍未找到解决办法,最后考虑到是css的问题。

mounted() {

//一开始使用的@scroll绑定在container上没有触发,后来发现使用这种方法有效

window.addEventListener('scroll', this.scroll, true)

},

methods: {

//封装的兼容性方法

scroll() {

//获得页面向左、向上卷动的距离

function getScroll() {

return {

left:

window.pageXOffset ||

document.documentElement.scrollLeft ||

document.body.scrollLeft ||

0,

top:

window.pageYOffset ||

document.documentElement.scrollTop ||

document.body.scrollTop ||

0

};

}

//这里的this.$nextTick一定要有

this.$nextTick(() => {

//这里是外层container

const container = this.$el.querySelector('.container')

if (container) {

//正常获取scrollTop

console.log(this.$el.querySelector('.container').scrollTop);

}

})

}

}

.container {

/* 这两个是必须要有的,不要写成overflow-y:auto; */

overflow-y: scroll;

height: 100%;

}

如有不足欢迎指正

相关推荐

如何在QQ音乐中创建共享歌单,与朋友一同享受音乐时光
beat365中国官方网站

如何在QQ音乐中创建共享歌单,与朋友一同享受音乐时光

📅 08-06 👁️ 239
手机不停收到验证码怎么解决
beat365中国官方网站

手机不停收到验证码怎么解决

📅 07-13 👁️ 6323
手机屏幕变暗了怎么办?一招教你轻松恢复亮度,解决Android手机常见问题!