1

添付の写真のようなCSSレイアウトがあります。 ここに画像の説明を入力
次の動作を実現したい

  1. ヘッダーの一部が表示されている場合 (スクロール時) の位置は写真のとおりです。
  2. ヘッダーが非表示の場合 (ヘッダーの長さよりも下にスクロールしている場合)、左、右、および img の位置を固定し、スクロール可能な部分はページ コンテンツのみにする必要があります。

これまでのところフィドルリンク

Liam はこのリンクを提案しましたが、javascript にエラーがありますUncaught TypeError: Property '$' of object [object DOMWindow] is not a function .。mootools に関連している可能性があります (私は使用していません)。この機能はムートルなしで可能ですか?

このポジショニングスタイルを教えていただけませんか?

ありがとうございました

4

2 に答える 2

1

http://jsfiddle.net/juSvJ/ が役立ちます。

画面がよほど小さい場合を除き、問題なく動作するはずです。

于 2011-05-26T13:06:43.330 に答える
1

これをテストし、正常に動作します

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript"
  src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.2/mootools-yui-compressed.js">
</script>
<script type="text/javascript">
//<![CDATA[
window.onscroll = function()
{
    if( window.XMLHttpRequest ) {
        if (document.documentElement.scrollTop > 221 || self.pageYOffset > 221) {
            $('rightsidebar').style.position = 'fixed';
            $('rightsidebar').style.top = '0';
            $('leftsidebar').style.position = 'fixed';
            $('leftsidebar').style.top = '0';
        } else if (document.documentElement.scrollTop < 221 || self.pageYOffset < 221) {
            $('rightsidebar').style.position = 'absolute';
            $('rightsidebar').style.top = '221px';
            $('leftsidebar').style.position = 'absolute';
            $('leftsidebar').style.top = '221px';
        }
    }
}
//]]>
</script>
<style type="text/css">
/*<![CDATA[*/
body {margin:0;
}
#header {background:blue; height:221px;}
#rightsidebar {
        position:absolute;
        right: 0;
        top: 221px;
        width: 150px;
        color: #FFFFFF;
        background:red;
}

#leftsidebar {
        position:absolute;
        left: 0;
        top: 221px;
        width: 150px;
        color: #FFFFFF;
}
#topleft {background:green;}
#image {background:red;}
#footer {height:100px; background:yellow;}
/*]]>*/
</style>
<title></title>
</head>
<body>
<div id="header">header</div>
<div id="leftsidebar">
<div id="topleft">lkjlk</div>
<div id="image">IMAGE</div>
</div>
<div id="content"><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
<div id="rightsidebar">lkjlk</div>
<div id="footer">Footer</div>
</body>
</html>
于 2011-05-26T21:13:00.150 に答える