vue-element-admin我踩的坑(6)

el-table添加监听器的问题

想对table添加横向滚动条的监听器,获取当前的滚动量,做两个表格的同步横向滚动

根据网上的方法添加监听器:

尝试1:

var doms = document.getElementsByClass('el-table')

doms[0].addEventListener('scroll', () => {

    console.log(doms[0].scrollLeft)

})

控制台没有输出

网上在找了一下,看到有说addEventListener要加个参数 true

尝试2:

var doms = document.getElementsByClass('el-table')

doms[0].addEventListener('scroll', () => {

    console.log(doms[0].scrollLeft)

}, true)

这回控制台有输出了,但都是0……,按照网上的说法,可能是dom对象不对,就试试表格数据的div:

尝试3:

var doms = document.getElementsByClass('el-table__body-wrapper')

doms[0].addEventListener('scroll', () => {

    console.log(doms[0].scrollLeft)

}, true)

console又没输出了(╯‵□′)╯︵┴─┴ 掀桌,继续搜索……,发现可以用ref定位对象的方法,

尝试4:

修改el-table标签:<el-table ref="tableA" .... >

var domA = this.$refs.tableA

domA.addEventListener('scroll', () => {

    console.log(domA.scrollLeft)

}, true)

直接报错! addEventListener is not a function !!!! (╯‵□′)╯︵┴─┴ 掀桌,又捣鼓了半天,搜了好多,尝试了好多次没有的,终于看到这个文章:https://blog.csdn.net/lynxkor/article/details/78069661,于是

尝试5:

var domA = this.$refs.tableA

domA.bodyWrapper.addEventListener('scroll', () => {

    console.log(domA.bodyWrapper.scrollLeft)

}, true)

终于成功了 o(╥﹏╥)o

再改改:

var domA = this.$refs.tableA
var domB = this.$refs.tableB

domA.bodyWrapper.addEventListener('scroll', () => {

    domB.bodyWrapper.scrollLeft = domA.bodyWrapper.scrollLeft

}, true)
domB.bodyWrapper.addEventListener('scroll', () => {

    domA.bodyWrapper.scrollLeft = domB.bodyWrapper.scrollLeft

}, true)

两个滚动条一起走了,完美 d(=^・ω・^=)b

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值