【问题标题】:Highchart click rotate -90Highchart 点击旋转 -90
【发布时间】:2016-03-16 17:45:34
【问题描述】:

单击切片时旋转到-90,单击此切片时其他切片在单击时不旋转。例如。单击切片时旋转-90,如果单击其他切片,则将这些切片旋转到-90。

http://jsfiddle.net/vkhvvs5d/13/ 这个小提琴适用于一个切片,但在单击其他切片时不起作用

这是我试图执行的语句

if(angle !== -90) { angle = -90 };

【问题讨论】:

  • “旋转到-90”是什么意思?是否希望单击的饼图在单击时从 -90 度开始?
  • 本题来自this question
  • 是的,我希望切片被点击然后旋转到-90,如果它已经被点击然后不要旋转。其他切片也是如此

标签: javascript jquery highcharts rotation pie-chart


【解决方案1】:

您需要计算应设置的角度。每次旋转后 startAngle 都会改变,所以选项 1 - 全部计算。选项 2 - 为每个点添加一个总和值(您可以在将数据用于 Highcahrts 之前对其进行解析,但在下面的示例中我对其进行了硬编码),然后根据单击的点设置适当的角度。

示例:http://jsfiddle.net/04y0pce2/

 // get angle
angle = 90 - (sum/total * 360) - (point.percentage/100 * 360)/2;
// 90 <- to what angle should point to
// sum/total * 360 <- what is total angle
// (point.percentage/100 * 360)/2 <- adjust to get middle of slice

对于数据为:

  data: [[1,0], [1,1], [1,2]],
  keys: ['y','sum'],

sum 是之前所有点的总和)

【讨论】:

  • 谢谢你,太好了。一个问题,旋转到 -90 是否有可能影响切片的所有层?例如,当单击绿色切片时,切片将移动到 -90,但是当第 2 层切片(从绿色切片扩展的蓝色切片被单击时,整个切片移回其原始位置)我希望每一层要影响的切片。
  • 就是这样!谢谢!
  • 您好,感谢您的改进!我想知道是否有可能使弧的第二层和第三层只有 A 和 C 的 2 个可扩展弧。但我希望 B 仍然有三个 jsfiddle.net/cmpf2rtz/3
  • @Max.H 是的,这是可能的,但您必须更改一些功能 - 在单击后传递下一级中应该可见的切片数量,并以匹配的方式准备下一级中的数据(在点 y 值中)点击点的角度。
  • 嗨,Kacper,这可能不是“正确的”修复,但我一起破解了一些东西。在这里:jsfiddle.net/cmpf2rtz/6
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2018-03-21
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多