5

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

非常感谢任何可以解决这个问题的人:)

4

3 回答 3

4

这是您的页面在应用 CSS 之前的样子:http: //img571.imageshack.us/img571/1047/shotjt.png。在那一刻,#projects nav 的宽度是客户端屏幕的宽度。

你有两个解决方案:

  1. 在样式属性中指定#projects nav 的宽度
  2. 为 init JS 函数添加一些超时: domready(function() { setTimeout("initPageFunction()", 200); }

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

于 2012-08-13T08:12:13.697 回答
2

另一种解决方案是将 body margin 设置为 0,通常在未设置宽度且未触及 body margin 的情况下,渲染可能会偏离 16 个像素,即 body 标签的每边(左右)各占 8 个像素。

罗德里戈。

于 2013-11-08T22:12:22.963 回答
0

这是因为边距创建的空间是计算出来的,最后一篇文章有​​右边距。这是固定的脚本。

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';

});
于 2012-08-13T08:14:25.023 回答