为什么给scrollLeft赋值,会出现不是我赋的值而是另外一个固定值的情况

在一个elementui的表格中,想要手动改增加列的宽度超过显示宽度时自动将滚动条置于最后面.

问题是当我计算给scrollLeft赋值的时候,我赋的值赋不上去,但是scrollLeft会变成一个固定的其他值,继续增加列,这个固定的值会继续按一定值增大.

代码如下:
比如,我scrollWidth - 1260 算出来是160,赋值给scrollLeft,然后我在赋值后打了个断点,在控制台输出scrollLeft ,他的值是65,而不是我赋值的160...继续增加列,每增加一列65会按固定往数值上涨一次.无论我scrollWidth - 1260计算的值是多少,都不影响他自己的这样增长.就算我给scrollLeft赋一个固定的值依然是这样,但是我不赋值操作scrollLeft就一直是0,非常奇怪.

this.$nextTick(() => {
        let scroll = this.$refs.rcTableDesign.querySelector('.table-class').querySelector('.el-table__body-wrapper')
        let scrollWidth = scroll.scrollWidth
        if (scrollWidth > 1400) {
          scroll.scrollLeft = scrollWidth - 1260
        }
      })

是因为我赋值之后浏览器又重新渲染了dom吗?那我紧接着的断点赋值应该是赋上去了,然后渲染dom的时候再变掉,这样我能理解,实际上赋值之后我紧跟着的断点输出他的值就已经变成了65.全部加载完之后我输出scrollLeft依然是65

或者有其他方法能实现手动增加elementui表格列后超过clientWidth时自动将滚动条置于最右端吗

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