繁体   English   中英

调整窗口大小时,DIV offsetWidth / Width / innerWidth在IE8中返回零

[英]DIV offsetWidth/Width/innerWidth returns zero in IE8 when window resizing

我的页面中有很多元素。 请考虑以下DIV

    <div id="root">    
        ..................
    <div id="child1">
        .............
    </div>
    <div id="child2">
        ...............
    </div>
</div>

根div(#root)在加载时会根据内容具有一定的宽度。

当窗口调整大小时,将调用repaint()函数,该函数存在于窗口调整大小函数中

$(window).resize( function () {
    repaint();
});
function repaint(){
    //width returns "0" in IE8 browser and other browsers working fine
    var width=$("#root").width() || $("#root").innerWidth() -> returns zero value in IE8
}

在IE8浏览器中返回宽度为“ 0”,但在IE9 /其他现代浏览器中返回宽度(960px)。

我不知道此问题的确切原因是什么。

为什么在调整窗口大小时返回零宽度。

谢谢,

西瓦

http://jsfiddle.net/5LFXK/

这在IE8中有效。 参见控制台(布局已完成)。

$(window).resize( function () {
  repaint();
});
function repaint(){
//width returns "0" in IE8 browser and other browsers working fine
var width=$("#root").width();
console.log(width);

}

设置宽度<div>调整 window 的大小时</div><div id="text_translate"><p>所以我在 Vuejs 中得到了这个应用程序,它被css grid划分为 3 个 div 基本上:一个sidebar 、一个configpanel和一个preview 。 我想根据当前屏幕大小和屏幕大小调整时以px为单位设置preview div 的宽度</p><p>为了澄清起见,我制作了一个网站的 gif 图像,它几乎完全符合我的要求: <a href="https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a" rel="nofollow noreferrer">https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a</a></p><p> 正如您在 gif 中看到的,每次调整屏幕大小时,特定的&lt;div&gt;都会由于某种原因(不知道为什么或如何)被分配一个新的 class 并且 div 的width会自动更新为新的px值。</p><p> 起初我以为我可以在created()钩子中做这样的事情:</p><pre> window.addEventListener("resize", () =&gt; { let preview = window.document.querySelector(".preview"); preview.style.width = `${preview.offsetWidth}px`; });</pre><p> 但这不起作用。</p><p> 我在<a href="https://codesandbox.io/s/hopeful-feather-ywh6z?file=/src/components/Preview.vue:125-430" rel="nofollow noreferrer">这里</a>的codesandbox中设置了一个非常简单的示例项目。</p><p> 理想情况下,我想知道如何像网站在 gif 中那样动态设置像素width 。</p><p> 此外,出于好奇,我想知道每次调整屏幕大小时该特定网站为何以及如何生成新的 class (我已经看过几次了,我想知道它是什么)。</p></div>

[英]Setting the width of a <div> when resizing the window

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 设置宽度<div>调整 window 的大小时</div><div id="text_translate"><p>所以我在 Vuejs 中得到了这个应用程序,它被css grid划分为 3 个 div 基本上:一个sidebar 、一个configpanel和一个preview 。 我想根据当前屏幕大小和屏幕大小调整时以px为单位设置preview div 的宽度</p><p>为了澄清起见,我制作了一个网站的 gif 图像,它几乎完全符合我的要求: <a href="https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a" rel="nofollow noreferrer">https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a</a></p><p> 正如您在 gif 中看到的,每次调整屏幕大小时,特定的&lt;div&gt;都会由于某种原因(不知道为什么或如何)被分配一个新的 class 并且 div 的width会自动更新为新的px值。</p><p> 起初我以为我可以在created()钩子中做这样的事情:</p><pre> window.addEventListener("resize", () =&gt; { let preview = window.document.querySelector(".preview"); preview.style.width = `${preview.offsetWidth}px`; });</pre><p> 但这不起作用。</p><p> 我在<a href="https://codesandbox.io/s/hopeful-feather-ywh6z?file=/src/components/Preview.vue:125-430" rel="nofollow noreferrer">这里</a>的codesandbox中设置了一个非常简单的示例项目。</p><p> 理想情况下,我想知道如何像网站在 gif 中那样动态设置像素width 。</p><p> 此外,出于好奇,我想知道每次调整屏幕大小时该特定网站为何以及如何生成新的 class (我已经看过几次了,我想知道它是什么)。</p></div> 将div的宽度设置为window.innerWidth会导致垂直滑块 如何在JavaScript中将window.innerWidth除以div.style.width? 在移动调试中,InnerWidth $(window).width()与实际宽度不匹配 javascript在IE8中弹出窗口宽度吗? 调整大小事件仅在IE8上手动调整浏览器窗口大小时触发 DIV的动态宽度(offsetWidth问题) 调整浏览器窗口大小时,如何使固定宽度的div推入另一个具有相对宽度的div? 为什么window.innerWidth返回477px,即使窗口的宽度较小? 如果使用 ie/else 比较 window.innerWidth
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM