【问题标题】:scrollTop only works on first clickscrollTop 仅适用于第一次点击
【发布时间】:2017-07-19 12:46:17
【问题描述】:

所以我有一个 amcharts 图表,当我点击图表中的一个条形时,它旁边的一个 div 会从条形滚动到该数据。我的问题是当我在第一次到达顶部或有时是随机位置后随时单击。我希望能够在单击时滚动到每条数据。

这是我的 scrollTo 方法代码:

"listeners": [{
  "event": "clickGraphItem",
  "method": function (event) {
    var buildNumber = event.item.category;
    var id = '#buildNumber' + buildNumber;
    var buildFailureObject = $('#buildNumber' + buildNumber);
    $('#infodiv').animate({ scrollTop: $(buildFailureObject).position().top - 20 }, 2000);
 }
}]

信息 div 是滚动发生的地方。澄清一下,第一次点击有效并带我到“buildFailureObject”,但接下来的点击要么带我回到 infodiv 的顶部,要么有时是随机靠近的地方。

我查看了与我的问题接近的问题,preventDefault 没有帮助我,也没有返回 false。

感谢您提供的任何帮助。

【问题讨论】:

  • 滚动到“随机”位置的事实让我相信随着事件发送的数据可能有问题。你有 console.log()ed event 和/或 event.item 对象吗?
  • 能否请您发布代码,以便我验证问题出在哪里
  • 您必须先获取对象的滚动高度,然后您必须滚动到如下所示: $('#infodiv').animate({ scrollTop: $(buildFailureObject.scrollHeight - 20 }, 2000);
  • @giorgio 是的,我有,而且数据是正确的。
  • @brijrajsinh 所以没有 .position() 了吗?

标签: javascript jquery amcharts scrolltop


【解决方案1】:

好的,我想出了答案,我需要这个:

$('#infodiv').animate({scrollTop:($('#infodiv').scrollTop() + $(buildFailureObject).position().top -20)}, 2000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多