这个问题的标题是关于禁用悬停,所以如果有其他人为此而来到这里,我会详细说明@SergeyB的 答案。
有几个选项影响鼠标悬停如何改变系列的样式。它们每个都有不同的效果,具体取决于系列类型。我将在这里讨论线和饼系列,但通常情况下,您可以查看 plotOptions.<seriesType>.states.hover
以获取应用于当前悬停系列的样式,以及 plotOptions.<seriesType>.states.inactive
以获取应用于非悬停系列的样式(例如 plotOptions.pie.states.hover)。这些选项都不影响工具提示的样式。
plotOptions.series.states.inactive
plotOptions.series.states.inactive 影响应用于所有当前未悬停的系列的样式。为了防止它们淡化到背景中,将 plotOptions.series.states.inactive.opacity
设为 1。
var chartOptions = {
plotOptions: {
series: {
states: {
inactive: {
opacity: 1,
},
},
},
},
}
jsFiddle for line
jsFiddle for pie
plotOptions.series.states.hover
plotOptions.series.states.hover 影响悬停在系列上时应用的样式。例如,对于线系列,默认情况下会加粗线条宽度并在最近的点上应用光晕。
要禁用当前悬停的线系列的任何样式,请将plotOptions.series.states.hover.enabled
设置为false。
var chartOptions = {
chart: {
type: "line",
},
plotOptions: {
series: {
states: {
hover: {
enabled: false,
},
},
},
},
}
jsFiddle
很不幸,如果我们将此设置在饼图系列上,这将使悬停的片段淡化为与其他非活动片段相同的背景(请参见jsFiddle以了解示例)。如果我们想要删除所有悬停样式而不影响非活动样式,我们可以将plotOptions.series.states.hover.halo.size
设置为0(这将删除光环),并将plotOptions.pie.states.hover.brightness
设置为0(这将删除变亮效果)。请注意,由于亮度是特定于饼图系列的,因此它在plotOptions.pie下记录,而不是在plotOptions.series下记录(尽管即使我将其添加到plotOptions.series下,它也可以正常工作)。
var chartOptions = {
chart: {
type: "pie",
},
plotOptions: {
series: {
states: {
hover: {
halo: {
size: 0,
},
},
},
},
pie: {
states: {
hover: {
brightness: 0,
},
},
},
},
}
{{链接1:jsFiddle}}
plotOptions.series.stickyTracking
如果您正在使用线条或面积系列,您可能已经注意到,即使您没有触摸系列,只要您悬停在图表上,最近的系列将接收悬停样式,其余的将接收非活动样式。这是因为 plotOptions.series.stickyTracking 默认为线条和面积系列的 true。如果您将 plotOptions.series.stickyTracking
设置为 false,则只有在您悬停在一条线上时才会应用悬停和非活动样式。
var chartOptions = {
chart: {
type: "line",
},
plotOptions: {
series: {
stickyTracking: false,
},
},
}
{{链接1:jsFiddle}}
plotOptions.series.enableMouseTracking
如@ninedozen noted 所述,您可以将plotOptions.series.enableMouseTracking
设置为false,从而完全禁用基于鼠标移动的所有响应交互。请注意,这也会禁用工具提示以及悬停/非活动样式。
选项范围
要将这些选项应用于整个图表中的所有系列,请将它们放置在plotOptions.series
下。要仅将其应用于某些系列类型(或者如果该选项特定于某个系列),请将其放置在plotOptions.<seriesType>
下。要将其应用于特定系列,请将其放置在该系列的选项中。
var chartOptions = {
series: [
{
name: "series1",
type: "line",
data: [...],
states: {...},
},
{
name: "series2",
type: "line"
data: [...],
},
{
name: "series3",
type: "pie"
data: [...],
}
],
plotOptions: {
series: {states: {...}},
line: {states: {...}}
}
}