Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

滚动条监听滚动变化事件报错 #5656

Closed
KuduroJS opened this issue Oct 18, 2023 · 5 comments
Closed

滚动条监听滚动变化事件报错 #5656

KuduroJS opened this issue Oct 18, 2023 · 5 comments

Comments

@KuduroJS
Copy link

KuduroJS commented Oct 18, 2023

文档中的DEMO: https://g2.antv.antgroup.com/spec/component/scrollbar

代码如下:

import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',
});

chart
  .line()
  .data({
    type: 'fetch',
    value:
      'https://gw.alipayobjects.com/os/bmw-prod/551d80c6-a6be-4f3c-a82a-abd739e12977.csv',
  })
  .encode('x', 'date')
  .encode('y', 'close')
  // 开启 X 轴缩略轴
  .scrollbar('x', {});

chart.on('afterrender', () => {
  const { canvas } = chart.getContext();
  const { document } = canvas;
  document.querySelector('.slider').addEventListener('valuechange', (evt) => {
    console.info(evt.detail);
  });
});

chart.render();
@pearmini
Copy link
Member

具体报错内容是?

@KuduroJS
Copy link
Author

KuduroJS commented Oct 19, 2023

具体报错内容是?

VM59:38 Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
at e. (:38:38)
at i (umi.d4710503.js:1:34429)
at e.emit (umi.d4710503.js:1:34442)
at umi.d4710503.js:1:5405631

 document.querySelector('.slider').addEventListener('valuechange', (evt) => {
    console.info(evt.detail);
  });

//  document.querySelector('.slider') 是null吧

@pearmini

@pearmini
Copy link
Member

应该是没有找到 slider,你 console.log(document) 一下,在控制台找一下这个组件

@KuduroJS
Copy link
Author

我这边用的是scrollbar不是slider,可能scrollbar的文档有点问题。从dom看,scrollbar好像是canvas画的,不是dom元素。这个要怎么拿到滚动值呢。

pearmini pushed a commit that referenced this issue Oct 31, 2023
Co-authored-by: ben.wen <ben.wen@narwal.com>
@pearmini
Copy link
Member

pearmini commented Nov 6, 2023

这个要怎么拿到滚动值呢。

通过监听事件的方式拿到:

slider.addEventListener('valuechange', onValueChange);

@pearmini pearmini closed this as completed Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants