【问题标题】:Node-Red Dashboard: Determine width and height of a group节点红色仪表板:确定组的宽度和高度
【发布时间】:2019-01-29 16:28:24
【问题描述】:

在 NR 仪表板中,我试图确定小部件组的宽度和高度:

var groupWidth = document.getElementById('Home_Test2_cards').offsetWidth;
var groupHeight = document.getElementById('Home_Test2_cards').offsetHeight;

它适用于groupWidth,但不适用于groupHeight。我发现一些参考资料表明,当设置为不可见时,div 不会返回其高度,但这里不是这种情况。有什么方法可以确定高度吗?

使用 jQuery:

调用 var groupHeight = $('#Home_Test2_cards').height(); 有效,但仍然只返回 0。

编辑:

Browser Screenshot

仪表板模板内容:

<script>
(function(scope) {
  scope.$watch('msg.payload', function(data) {
    if (data !== undefined) {
      imageObj.src=data;
    }
  });
}(scope));

var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var groupWidth = document.getElementById('Home_Test2_cards').offsetWidth;
//var groupHeight = document.getElementById('Home_Test2_cards').offsetHeigth;
var groupHeight = $('#Home_Test2_cards').height();

console.log('Width:' + groupWidth);
console.log('Height:' + groupHeight);

var imageObj = new Image();
imageObj.onload= function() {
  var wRatio = groupWidth / imageObj.width;
  var hRatio = groupHeight / imageObj.height;
  var ratio = Math.min(wRatio, hRatio);
  context.drawImage(imageObj, 0, 0, canvas.width, canvas.height, 0, 0, imageObj.width*ratio, imageObj.height*ratio);
};
</script> 

<canvas id="myCanvas"></canvas>

根据上面的截图,我预计高度为 351。

【问题讨论】:

    标签: javascript dashboard node-red


    【解决方案1】:

    node-red Dashboard 包含 JQuery 库,因此您应该可以使用:

    var groupWidth = $('#Home_Test2_cards').width;
    var groupHeight = $('#Home_Test2_cards').height;
    

    【讨论】:

    • 嗯,它适用于我在仪表板中测试的&lt;div&gt;...所以它必须依赖于 div 元素的 contents。您能否使用 div 及其内容的 sn-p 更新问题,以便我们对其进行测试?
    • 您使用的是哪个浏览器?你检查过其他浏览器吗?而不是你的代码,我要求的是 div 的外部 html content,这样我就可以构建相同的结构并在本地尝试......
    • FF 或 Chrome 给出相同的结果。
    • 关于外部html内容,我不明白你的问题。这只是一个 Node Red 仪表板 UI 模板(不是 html 模板),上面粘贴了内容。此模板节点自动创建所有内容,如 OP 屏幕截图所示,我添加的只是放置图像的画布。看到这个screenshot
    • 好吧,因为我没有发送到仪表板的传入 msg 数据,所以我需要查看呈现的实际 html -- 在开发控制台 (F12) 中你能找到/复制组的&lt;div&gt;元素的html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多