带有子元素的滚动祝福框
Scroll blessed box with child elements
我有一个加持的盒子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);
});
如何使用鼠标滚轮滚动外框,同时仍然能够检测到对内部元素的点击?
我通过使用列表而不是装满盒子的盒子解决了这个问题。列表是可滚动的并且可以有可选择的元素。
我有一个加持的盒子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);
});
如何使用鼠标滚轮滚动外框,同时仍然能够检测到对内部元素的点击?
我通过使用列表而不是装满盒子的盒子解决了这个问题。列表是可滚动的并且可以有可选择的元素。