【问题标题】:Scroll blessed box with child elements滚动带有子元素的祝福框
【发布时间】:2018-05-21 04:16:38
【问题描述】:

我有一个带有scrollable: true的祝福盒子

let outerBox = blessed.box({
  top: '0%',
  left: '0%',
  width: '0%+6',
  height: '100%',
  scrollable: true,
  tags: true,
  padding: 1,
  mouse: true,
  style: {
    fg: 'white',
    bg: 'black'
  }
});

在里面我有很多我想要点击的元素。

[array of many elements].forEach((elem, i) => {
  let innerBox = blessed.box({
    content: elem,
    "height": "0%+1",
    "top": "0%+"+i,
    style: {
      hover: {
        bg: "black",
        fg: "white"
      }
    }
  });
  innerBox.on("click", (data) => {
    console.log("clicked",guild)
  });
  outerBox.append(server);
});

但是,如果元素设置了样式属性或侦听单击事件处理程序,则在它们上滚动不再滚动外框。我必须在框的最边缘滚动才能真正滚动。

这可行,但我无法检测到点击:

[array of many elements].forEach((elem, i) => {
  let innerBox = blessed.box({
    content: elem,
    "height": "0%+1",
    "top": "0%+"+i
  });
  outerBox.append(server);
});

如何使用鼠标滚轮滚动外框,同时仍然能够检测到对内部元素的点击?

【问题讨论】:

    标签: javascript node.js blessed


    【解决方案1】:

    我通过使用列表而不是装满盒子的盒子解决了这个问题。列表是可滚动的,并且可以有可选择的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2014-01-19
      • 2011-10-29
      • 2019-09-28
      • 1970-01-01
      • 2014-07-29
      • 2011-05-04
      相关资源
      最近更新 更多