Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript offsetWidth返回的值不正确_Javascript_Html_Css_Offsetwidth - Fatal编程技术网

Javascript offsetWidth返回的值不正确

Javascript offsetWidth返回的值不正确,javascript,html,css,offsetwidth,Javascript,Html,Css,Offsetwidth,好的,我尝试创建一个水平站点,但是当我尝试获取导航的offsetWidth时,它返回的值远远高于真实宽度。有问题的设计可以找到。页面的CSS是和JS 非常感谢所有能够解决此问题的人:)这就是您的页面在应用CSS之前的样子: . 此时#projects nav的宽度就是客户端屏幕的宽度 您有两种解决方案: 在样式属性中指定#项目导航的宽度 向init JS函数添加一些超时:domready(function(){setTimeout(“initPageFunction()”,200);} 令人惊讶

好的,我尝试创建一个水平站点,但是当我尝试获取导航的offsetWidth时,它返回的值远远高于真实宽度。有问题的设计可以找到。页面的CSS是和JS


非常感谢所有能够解决此问题的人:)

这就是您的页面在应用CSS之前的样子: . 此时#projects nav的宽度就是客户端屏幕的宽度

您有两种解决方案:

  • 在样式属性中指定#项目导航的宽度
  • 向init JS函数添加一些超时:domready(function(){setTimeout(“initPageFunction()”,200);}

  • 令人惊讶的是,它在IE中运行良好:)

    这是因为页边距创建的空间是经过计算的,并且上一篇文章有一个正确的页边距。这是固定的脚本

    domready(function() {
    
        var projectsContainer = qwery('#projects')[0];
        var projects = qwery('.project');
        var projectsNav = qwery('#projects nav')[0];
    
        var pMargin = 40;
        var pnW = projectsNav.offsetWidth+cMargin;
    
        for(p in projects) {
            projects[p].style.marginRight = pMargin+'px';
        }
    
        projectsContainer.style.width = (projects.length*(projects[0].offsetWidth+pMargin))+pnW+'px';
    
    });
    

    另一种解决方案是将主体边距设置为0,通常在未设置宽度且未触及主体边距时,渲染可能会关闭16个像素,这占主体标记每侧(左侧和右侧)的8个像素


    Rodrigo。

    您可以执行一些console.log-ing并查看页面加载上的值吗?因为我加载了你的页面,看到框太宽了,但是如果我在页面加载后运行这个函数,它会正常工作。另外,在pnW变量的末尾加上+40(以说明边距)您的链接断开了(hanks:)最后我使用了一个窗口加载事件,而不是domready