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