如何在DYGRAPS中更改鼠标事件和键盘输入.

我想将范围 Select 器或X轴移动更改为键盘和鼠标组合

范围 Select 器[拖动]-->按住Shift键并拖动

X轴移动[Shift+拖动]-->Ctrl+拖动

BR

推荐答案

要在Dygraph中实现自定义鼠标和键盘交互以进行范围 Select 和X轴移动,您可以侦听鼠标和键盘事件,然后相应地处理它们以更改行为.

// Get a reference to your Dygraph instance
const dygraph = new Dygraph(...);

document.addEventListener('mousedown', handleMouseDown);
document.addEventListener('mouseup', handleMouseUp);
document.addEventListener('mousemove', handleMouseMove);
document.addEventListener('keydown', handleKeyDown);
document.addEventListener('keyup', handleKeyUp);

let isMouseDown = false;
let isShiftKeyDown = false;
let isCtrlKeyDown = false;
let startX = 0;

// Function to handle mouse down event
function handleMouseDown(event) {
  if (event.shiftKey) {
    isMouseDown = true;
    startX = event.clientX;
  }
}

// Function to handle mouse up event
function handleMouseUp(event) {
  isMouseDown = false;
}

// Function to handle mouse move event
function handleMouseMove(event) {
  if (isMouseDown && isShiftKeyDown) {
    // Handle range selection
    const endX = event.clientX;
    const selectedRange = [startX, endX];
    // Do something with the selected range
  }
}

// Function to handle key down event
function handleKeyDown(event) {
  if (event.key === 'Shift') {
    isShiftKeyDown = true;
  } else if (event.key === 'Control') {
    isCtrlKeyDown = true;
  }
}

// Function to handle key up event
function handleKeyUp(event) {
  if (event.key === 'Shift') {
    isShiftKeyDown = false;
  } else if (event.key === 'Control') {
    isCtrlKeyDown = false;
  }
}

您可以修改handleMouseMove功能,以便在按下Ctrl键时处理X-axis移动,类似于使用Shift键处理范围 Select 的方式.此外,您可以调整逻辑以满足您的特定要求.

参考文献:https://dygraphs.com/options.html

Javascript相关问答推荐

有Angular 的material .未应用收件箱中的价值变化

如何在表格上拥有水平滚动条,在正文页面上拥有垂直滚动条,同时还对html表格的标题使用位置粘性?

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

切换时排序对象数组,切换不起作用

Chart.js-显示值应该在其中的引用区域

如何在ASP.NET中使用Google Charts API JavaScript将条形图标签显示为绝对值而不是负值

如何通过将实例方法的名称传递给具有正确类型的参数的继承方法来调用实例方法?

以Angular 实现ng-Circle-Progress时出错:模块没有导出的成员

WP Bootstrap NavWaker:下拉菜单一次打开所有下拉菜单

确保函数签名中的类型安全:匹配值

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

Nextjs 13.4 Next-Auth 4.2登录(&Quot;凭据&,{});不工作

AJAX POST在控制器中返回空(ASP.NET MVC)

如何使用Astro优化大图像?

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时

react 路由如何使用从加载器返回的数据

如何压缩图像并将其编码为文本?

递归地将JSON对象的内容上移一级

如何在单击链接时设置一个JavaScript变量(以打开弹出窗口的特定部分)

检测带有委托的元素内部的点击,以及元素何时按其类名被选中