簡體   English   中英

Highcharts 柱狀圖中點懸停上的粗體 X 軸標簽

[英]Bold X-Axis Label on Point Hover in Highcharts Column Chart

我使用的是 Highcharts 柱狀圖 ( http://www.highcharts.com/demo/column-basic ),其中包含 50 多行數據和 3 個不同的系列。 由於這個數量和圖表寬度限制,x 軸標簽靠在一起並成束。

當用戶將鼠標懸停在圖表內的點/列上時,我想加粗或更改 x 軸標簽的顏色。 我知道有些事件可以綁定到每個點( http://api.highcharts.com/highcharts#plotOptions.column.point.events ),但我無法將任何樣式更改鏈接到 x 軸標簽由此。 這是一個 jsFiddle ( http://bit.ly/SpPvCW ),其中包括該事件。 代碼塊如下所示:

plotOptions: {
        series: {
            point: {
                events: {
                    mouseOver: function() {
                        $reporting.html('x: '+ this.x +', y: '+ this.y);
                    }
                }
            },
            events: {
                mouseOut: function() {                        
                    $reporting.empty();
                }
            }
        }
}

這個 jsFiddle ( http://jsfiddle.net/4h7DW/1/ ) 包括一個柱狀圖,其中 x 軸標簽旋轉。

xAxis: {
            labels: {
                rotation: -70,
                align: 'right',
                style: {
                    fontSize: '10px',
                    color:'#999',
                    fontFamily: 'Verdana, sans-serif'
                }
            }
},

同樣,目標是在您懸停關聯的列/點時加粗或更改 x 軸標簽的顏色。

這是我剛剛創建的一個快速示例。 我累了,它可以改進。 它通過點索引將軸標簽鏈接到鼠標懸停:

          series: {
                point: {
                    events: {
                        mouseOver: function() {
                           $(this.series.chart.xAxis[0].labelGroup.element.childNodes[this.x]).css('fill', 'black');
                        },
                        mouseOut: function() {                       
                             $(this.series.chart.xAxis[0].labelGroup.element.childNodes[this.x]).css('fill', '#999999');
                        }
                    }
                }
            }

在這里擺弄。

替代解決方案:使用 HTML 參數,然后使用 jquery 在 DOM 中查找 elemetn。

http://jsfiddle.net/uPBvH/2/

series: {
                point: {
                    events: {
                        mouseOver: function() {                 $('.highcharts-axis-labels span').eq(this.x).addClass('active');
                        },
                        mouseOut: function() {                       
  $('.highcharts-axis-labels span').eq(this.x).removeClass('active');                        
                        }
                    }
                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM