在全屏幕上关闭Highcharts自定义按钮样式

rslzwgfq  于 2022-11-11  发布在  Highcharts
关注(0)|答案(1)|浏览(188)

我在我的Angular 应用程序中使用了highcharts。在图表内部,我放置了自定义按钮,让用户进入新的页面。
问题是,当我全屏显示图表时,使用导出菜单,自定义按钮的位置只是在原来的位置。它不会随着图表尺寸的变化而改变其位置,即如果图表尺寸从500x500增加到1280x1000,那么按钮不会相应地移动

进入全屏幕之前

全屏显示期间

我使用event.render将按钮放置在图表上。我是否需要:
1.在全屏事件中再次呈现按钮并退出全屏事件。
1.将按钮的对齐方式更改为始终右上对齐(添加边距以避免与导出按钮重叠)。
1.任何完全不同东西,比如给予编码

  • 用于将按钮添加到图表的代码 *:
public static donutChartOptions: Options{
     chart: {
          type: 'donut',
          events: {
              render(events) {
                   let chartVal = this;
                   chartVal.renderer
                   .button('View Full Report', 460, 8, (e) => {})
                   .attr({
                       zIndex: 3,
                   })
                   .on('click', function () {
                        window.location.href = '#/home/viewDistribution';
                   })
                  .add();
               }
             },
           }
         }
44u64gxh

44u64gxh1#

您可以使用储存在图表中的动态值,在适当的位置建立按钮。例如:

chart: {
    ...,
    events: {
      render(events) {
        const chart = this;
        const exportingBBox = chart.exportingGroup.getBBox();
        const x = exportingBBox.x - 10;
        const y = 6;

        if (!chart.customButton) {
          chart.customButton = chart.renderer
            .button('View Full Report')
            .attr({
              zIndex: 3,
              align: 'right'
            })
            .on('click', function() {
              window.location.href = '#/home/viewDistribution';
            })
            .add();
        }

        chart.customButton.attr({
          x,
          y
        });
      }
    }
  }

现场演示:http://jsfiddle.net/BlackLabel/2hoznsab/
**API参考:**https:api.highcharts.com/class-reference/Highcharts.SVGElement#attr

相关问题