Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌可视化时间线显示鼠标光标的时间_Javascript_Charts_Visualization_Timeline_Google Visualization - Fatal编程技术网

Javascript 谷歌可视化时间线显示鼠标光标的时间

Javascript 谷歌可视化时间线显示鼠标光标的时间,javascript,charts,visualization,timeline,google-visualization,Javascript,Charts,Visualization,Timeline,Google Visualization,我希望我能在google visualization timeline中用Java脚本显示鼠标光标的时间/日期 比如说: log(googlechart.timedate(mouse.x)); 有没有办法得到我的鼠标x的时间日期 问题是,我正在尝试对时间线元素进行拖动,所以我首先得到光标在某个元素上时鼠标被拖动的距离,现在我得到了像素,我想应用时间线元素值的变化,即拖动在它上面,但是我不知道如何知道要更改的日期/时间的新值,然后我将刷新图形 谢谢。不幸的是,使用他们的API没有内置的方法来实现这

我希望我能在google visualization timeline中用Java脚本显示鼠标光标的时间/日期

比如说: log(googlechart.timedate(mouse.x)); 有没有办法得到我的鼠标x的时间日期

问题是,我正在尝试对时间线元素进行拖动,所以我首先得到光标在某个元素上时鼠标被拖动的距离,现在我得到了像素,我想应用时间线元素值的变化,即拖动在它上面,但是我不知道如何知道要更改的日期/时间的新值,然后我将刷新图形


谢谢。

不幸的是,使用他们的API没有内置的方法来实现这一点。基于,我修改了Google的JSFiddle示例,添加了一个简单的
mousemove
事件,用于计算光标的相对X和Y位置

  google.charts.load('current', {'packages':['timeline']});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('timeline');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();

    dataTable.addColumn({ type: 'string', id: 'President' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'Adams',      new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
      [ 'Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);


    // create 'ready' event listener to add mousemove event listener to the chart
    var runOnce = google.visualization.events.addListener(chart, 'ready', function () {
          google.visualization.events.removeListener(runOnce);
          // create mousemove event listener in the chart's container
          // I use jQuery, but you can use whatever works best for you
          $(container).mousemove(function (e) {
            var xPos = e.pageX - container.offsetLeft;
            var yPos = e.pageY - container.offsetTop;

            // (Do something with xPos and yPos.)
        });
    });

    chart.draw(dataTable);
  }


这只是一个开始。您必须弄清楚如何从鼠标坐标中插入时间和日期数据,因为没有API功能可以做到这一点,即使有,如果不使用自己的计算,也无法获得“中间”值。您可能会找到一些帮助。

是的,我看到了前面的JSFIDLE one,它显示的是浮点值,但在我的例子中,我想使用datetime,所以要找到x鼠标值的timedate,非常感谢您,我会再等一会儿,看看是否有办法,但如果没有答案,我会把你的答案标为正确答案。