我正在试图弄清楚如何更改图表上的默认光标(放大),如何更改鼠标按下时的光标(调整大小),以及如何将光标重置为鼠标向上(放大).所有这一切,都不会打破变焦的行为.

我声明图表选项中的zoom 以启用它:

chart: {
   zoomType : 'x',
},

变焦工作.但是如果我try 用这段代码改变光标,它似乎覆盖了zoom 行为,它不再工作了:

chart: {
   zoomType : 'x',
   events: {
     load: function () {
         const chart = this;
         chart.container.onmousedown = function () {
             chart.container.style.cursor = 'col-resize';
         };
         chart.container.onmouseup = function () {
             chart.container.style.cursor = 'zoom-in';
         };
     }
   }
}

默认光标的css部件:

.zoomableChart:hover {
    cursor: zoom-in;
}

推荐答案

@naren-murali 谢谢,根据你的回答,我写了这段代码:

<highcharts-chart [.......]
(mouseup)="onMouseUpChart($event)" (mousedown)="onMouseDownChart($event)" (mouseenter)="onMouseEnterChart($event)">
[....]
</highcharts-chart>
onMouseUpChart(event): void {
    event.srcElement.ownerSVGElement.style.cursor = 'zoom-in';
  }
onMouseDownChart(event): void {
    event.srcElement.ownerSVGElement.style.cursor = 'col-resize';
}
onMouseEnterChart(event): void {
    event.srcElement.querySelector('svg').style.cursor = 'zoom-in';
}

它部分起到了作用.我认为还剩下一个问题:

  • 所有的图表都是"可悬停的":即使在轴上循环,光标也会改变.我只想在光标位于图表部分(不是轴、图例等)的情况下更改它. 使用class="Highcharts-Plot-Backging"或class="HighChats-Plot-Borde"的元素似乎很好,但应用样式不起作用

Angular相关问答推荐

Angular :仅当 Select 第一个日期时才显示第二个日期字段

嵌套formArrays的HTML迭代

Angular 环境本地无文件替换

确保我的角库S服务构建提供独立的友好提供功能

Primeng:安装ANGLE 16.2.0版本

错误TS2531:对象可能为空.论窗体数组控件

如何将参数传递给Angular 服务

无法在单个元素上多次监听同一个事件

如何正确导出/导入枚举和接口文件以便 Jest 成功完成测试?

如何检测 Angular Universal 预渲染版本?

在Angular中扩展多个类

NX MFE Angular 模块联合无法访问远程微前端

如何处理Angular 延迟订阅

CORS 策略和 .NET Core 3.1 的问题

如何在angular 5 中获取基本网址?

将外部 CSS 加载到组件中

NG 测试中的调试测试

Angular 2 Material Design 组件是否支持布局指令?

路由 getCurrentNavigation 始终返回 null

Angular2:子组件访问父类变量/函数