愤怒的大香蕉 2024-10-10 12:14 采纳率: 9.1%
浏览 29
已结题

gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置

gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置

  • 写回答

29条回答 默认 最新

  • 阿里嘎多学长 2024-10-10 12:14
    关注
    获得0.30元问题酬金

    AIGC生成:


    解决方案

    你可以使用 GoJS 的 click 事件来实现点击按钮 node 的 position 位置进行改变,然后再次点击回到原来的位置。下面是一个简单的示例代码:

    // 定义一个按钮 node
    var buttonNode = $(go.Node, 'Button', {
      // 设置按钮的样式
      shape: 'Rectangle',
      fill: 'lightblue',
      stroke: 'black',
      strokeWidth: 2
    });
    
    // 添加点击事件
    buttonNode.add(new go.Binding('position', 'clickPosition').makeTwoWay());
    
    // 定义一个变量来存储按钮的初始位置
    buttonNode.data = { clickPosition: new go.Point(100, 100) };
    
    // 定义一个函数来改变按钮的位置
    function changePosition() {
      var position = buttonNode.data.clickPosition;
      buttonNode.position = new go.Point(position.x + 10, position.y + 10);
    }
    
    // 添加点击事件处理函数
    buttonNode.add(new go.EventHandler('click', changePosition));
    

    在上面的代码中,我们定义了一个按钮 node,并添加了点击事件处理函数 changePosition。当按钮被点击时,函数将按钮的位置改变10个像素,然后将按钮的位置存储在 clickPosition 变量中。下次按钮被点击时,函数将按钮的位置恢复到 clickPosition 变量中的值。

    代码解释

    • go.Node 是 GoJS 中的节点类,用于创建一个新的节点。
    • go.Binding 是 GoJS 中的绑定类,用于将节点的属性绑定到数据模型中。
    • makeTwoWay 方法用于将绑定设置为双向的,即当数据模型中的值改变时,节点的属性也将改变。
    • go.EventHandler 是 GoJS 中的事件处理类,用于添加事件处理函数到节点中。
    • click 事件是 GoJS 中的点击事件,用于响应按钮的点击事件。

    使用场景

    这个解决方案可以在 GoJS 中实现点击按钮 node 的 position 位置进行改变,然后再次点击回到原来的位置。这个解决方案可以在各种场景中使用,例如在图表中实现按钮的交互效果。


    评论

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 创建了问题 10月10日