5

さて、私は水平サイトを作成しようとしていますが、ナビゲーションのoffsetWidthを取得しようとすると、実際の幅よりもはるかに高い値が返されます。問題のデザインはここにあります。このページのCSSはここにあり、JSはここにあります。

これを解決できる人に感謝します:)

4

3 に答える 3

4

これは、CSS が適用される直前のページの外観です: http://img571.imageshack.us/img571/1047/shotjt.png。その瞬間、#projects nav の幅はクライアント画面の幅になります。

次の 2 つの解決策があります。

  1. style 属性で #projects nav の幅を指定する
  2. init JS 関数にタイムアウトを追加します: domready(function() { setTimeout("initPageFunction()", 200); }

驚いたことに、それはIEでうまく機能します:)

于 2012-08-13T08:12:13.697 に答える
2

もう 1 つの解決策は、ボディ マージンを 0 に設定することです。通常、幅が設定されておらず、ボディ マージンが変更されていない場合、ボディ タグの各辺 (左右) に 8 ピクセルを占める 16 ピクセル分レンダリングがずれている可能性があります。

ロドリゴ。

于 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 に答える