javascript - 如何在 Javascript DOM 更新后触发 CSS 布局重新计算?

标签 javascript html css

我经常发现,如果我在 javascript 中创建或重新设置 DOM 节点的父级,CSS 引擎不会重新计算父级容器的大小。这发生在 Firefox 和 Chrome 中。

例如,当新内容溢出底部时,body 可能会保持相同的大小。如果我调整窗口的大小,主体会变大,但它不会“锁定”到正确的大小,直到窗口的大小至少主体一样大应该是。

有没有办法在 Javascript 中触发完整的布局重新计算?

最佳答案

我可以通过以下方式触发 CSS 引擎:

document.body.style.zoom = 1.0000001;
setTimeout(function(){document.body.style.zoom = 1;},50); //allow some time to flush the css buffer.

每次调整窗口大小后使用以下命令:

$(window).resize(function() {
    if(this.resizeTO) clearTimeout(this.resizeTO);
    this.resizeTO = setTimeout(function() {
        $(this).trigger('resizeEnd');
    }, 500);
});
$(window).bind('resizeEnd', function() {
    document.body.style.zoom = 1.0000001;
    setTimeout(function(){document.body.style.zoom = 1;},50);
});

关于javascript - 如何在 Javascript DOM 更新后触发 CSS 布局重新计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21055840/

相关文章:

java - 通过 AJAX 发布 JSON 重音问题

javascript - 如何将面添加到 THREE.BufferGeometry?

javascript - HTML JavaScript 不工作

css - 如何创建一个被展开的 div 包围的固定透明窗口?

html - 按钮样式在不同的屏幕和设备上有所不同

javascript - Golang 网络套接字处理程序

javascript - 更改每个子元素的顶部样式

javascript - 如何使用选项值禁用文本框

javascript - 猫头鹰旋转木马销毁问题(未捕获的类型错误 : Cannot read property 'destroy' of undefined )

html - 来自较低文件夹的图像链接不起作用