首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AMI医学影像中使用鼠标移动改变级别/窗口ToolKit

在AMI医学影像中使用鼠标移动改变级别/窗口ToolKit
EN

Stack Overflow用户
提问于 2016-06-06 13:42:42
回答 1查看 219关注 0票数 1

我正在玩一些AMI医学成像(AMI) JS ToolKit。是否有一种方法可以将窗口移动到鼠标事件,如右键单击和移动?

我知道用示例中的菜单更改窗口/级别是可能的,但是我想改变控制器来移动鼠标。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-07 10:19:21

要通过移动鼠标来控制窗口/级别,您必须侦听mousemouve事件,然后根据需要更新stackHelper -> slice -> windowWidth/Center

如果用户按shift,则可以启用窗口/级别。

代码语言:javascript
运行
复制
var drag =  {
  x: null,
  y: null
}

var shiftDown = false;

function onKeyPressed(event){

  shiftDown = event.shiftKey;

  if(!shiftDown){
    drag.x = null;
    drag.y = null;
  }

}

container.addEventListener('keydown', onKeyPressed);
container.addEventListener('keyup', onKeyPressed);

然后在鼠标移动时更新窗口/级别:

代码语言:javascript
运行
复制
function onMouseMove(event){

  if(!shiftDown || !stack || !stackHelper){
    return;
  }

  if(drag.x === null){
    drag.x = event.offsetX;
    drag.y = event.offsetY;
  }

  var threshold = 15;
  var dynamicRange = stack.minMax[1] - stack.minMax[0];
  dynamicRange /= container.clientWidth;

  if(Math.abs(event.offsetX - drag.x) > threshold){
    // window width
    stackHelper.slice.windowWidth += dynamicRange * (event.offsetX - drag.x);
    drag.x = event.offsetX;
  }

  if(Math.abs(event.offsetY - drag.y) > threshold){
    // window center
    stackHelper.slice.windowCenter -= dynamicRange * (event.offsetY - drag.y);
    drag.y = event.offsetY;
  }

}
container.addEventListener('mousemove', onMouseMove);

查看一个活动演示(shift +鼠标移动到控制窗口级别):http://jsfiddle.net/vabL3qo0/41/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37659074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档