javascript - 滚动带有子元素的祝福框
问题描述
我有一个祝福的盒子,里面有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);
});
如何使用鼠标滚轮滚动外框,同时仍然能够检测到对内部元素的点击?
解决方案
我通过使用列表而不是装满盒子的盒子解决了这个问题。列表是可滚动的,并且可以具有可选择的元素。
推荐阅读
- c - 在子宏中替换父标记
- symfony - Symfony 4 DateType 已被 jquery 禁用但未提交数据
- typescript - 打字稿
tuple 只允许使用参数值:string | forEach 方法上的 BrowserWindow - javascript - 按属性对象将对象数组减少到总数
- saml-2.0 - 在 /Saml2/Acs 点接收 SAML 注销响应
- javascript - 我如何使用 yubico(公钥和私钥)加密和解密文件
- javascript - 将文本移动到父级的合理方法
- 进入新的?
- r - 如何替换类表矩阵中的值?
- ffmpeg - 如何通过使用单个 ffmpeg 命令从两个不同视频中获取特定时隙来垂直合并视频?
- ruby-on-rails - Sidekiq 打开开信器而不是发送邮件