Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 谷歌图表(AreaChart)如何检测缩放变化_Javascript_Charts_Google Visualization - Fatal编程技术网

Javascript 谷歌图表(AreaChart)如何检测缩放变化

Javascript 谷歌图表(AreaChart)如何检测缩放变化,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,我正在绘制一张面积图,覆盖图上有一些标记 我正在使用资源管理器选项(仅水平),以便让用户放大和缩小。 问题是,我无法找到一种方法来通知zoom已更改,以便有机会更新制造商位置。有一个chartrangechange事件,但它不是由AreaChart触发的 我尝试检测常见的onmouseheel/onwheel事件和ondragstart/ondragend事件,但是: 1) onmousewheel/onwheel在图表缩放之前而不是之后触发,因此无法一致地计算标记重新定位 2) 当用户放大后向

我正在绘制一张面积图,覆盖图上有一些标记

我正在使用资源管理器选项(仅水平),以便让用户放大和缩小。 问题是,我无法找到一种方法来通知zoom已更改,以便有机会更新制造商位置。有一个chartrangechange事件,但它不是由AreaChart触发的

我尝试检测常见的onmouseheel/onwheel事件和ondragstart/ondragend事件,但是:

1) onmousewheel/onwheel在图表缩放之前而不是之后触发,因此无法一致地计算标记重新定位

2) 当用户放大后向左或向右拖动图表内容以移动它时,图表元素不会触发ondragstart/ondragend,因此也没有机会重新定位标记


有人能帮忙吗?

而不是依靠事件来检测缩放变化

使用变异观察者,它将在元素添加到图表容器时发出通知

每次发生缩放时,都会将元素添加到图表中
例如缩放时所选区域的背景高亮显示

请参阅下面的工作片段,它使用变异观察者来检测缩放,
并更改选择框的颜色

google.charts.load('current'{
回调:函数(){
var data=new google.visualization.DataTable({
“科尔斯”:[
{“标签”:“X”,“类型”:“编号”},
{“标签”:“Y”,“类型”:“编号”}
],
“行”:[
{“c”:[{“v”:0},{“v”:0}]},
{“c”:[{“v”:1},{“v”:1}]},
{“c”:[{“v”:2},{“v”:2}]},
{“c”:[{“v”:3},{“v”:4}]},
{“c”:[{“v”:4},{“v”:8}]},
{“c”:[{“v”:5},{“v”:16}]},
{“c”:[{“v”:6},{“v”:32}]},
{“c”:[{“v”:7},{“v”:64}]},
{“c”:[{“v”:8},{“v”:128}]},
{“c”:[{“v”:9},{“v”:256}]}
]
});
变量选项={
探索者:{
操作:['dragToZoom','rightClickToReset'],
轴:'水平',
keepInBounds:对
},
哈克斯:{
标题:“X”
},
言辞:{
标题:“Y”
}
};
var chartDiv=document.getElementById('chart_div');
var chart=新的google.visualization.LineChart(chartDiv);
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
突变.addedNodes.forEach(函数(节点){
//在此调整覆盖层
if(node.getAttribute('fill')='#0000ff'){
node.setAttribute('fill','#00ff00');
}
});
});
});
观察者,观察者{
儿童名单:是的,
子树:真
});
图表绘制(数据、选项);
},
软件包:['corechart']
});