我有一个在windows-resize事件上运行的JS函数
在函数中,我设置了一个变量width
,用于调整d3
图表的大小。如果我调整窗口大小"手动" (即:拖动其中一个窗口边缘),宽度变量似乎是正确的,但是当我点击"恢复"在浏览器窗口右上角的图标中,宽度变量似乎不正确(例如,我恢复下来并且值为205,对窗口边缘的触摸最小,然后值为310)
root.selectAll('.upload-visual')
.each(function(d, i) {
var me = d3.select(this).select('.chart');
var width = me.node().getBoundingClientRect().width;
我已经读过,出于性能原因可以缓存getBoundingClientRect()
。
我的值是否被缓存,或者该函数不理解恢复操作中已发生的变化?
答案 0 :(得分:1)
这与getBoundingClientRect()
无关,但肯定需要注意。
在window-resize
函数中,立即调用包含getBoundingClientRect()
的函数。我需要设置超时以确保浏览器已完成调整大小,以便返回正确的尺寸。
绝对值得了解