2013-09-30

javascript:画面を分割して下部だけスクロールさせる

サンプル

◆html

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>FlckrPhotoSet</title>
  6. <link rel="stylesheet" href="css/Flickr_photoset.css">
  7. <script src="js/oauth.js"></script>
  8. <script src="js/jquery.js"></script>
  9. <script src="js/Flickr_photoset.js"></script>
  10.  
  11. <script>
  12. var photoset_id = '72157635974998255'
  13. var consumerKey = 'f4bc240df0b0418fb80e3719ec173dc0';
  14. </script>
  15.  
  16. </head>
  17.  
  18. <body>
  19. <div id="header">Loading...</div>
  20. <div id="contents">Loading...</div>
  21. </body>
  22.  
  23. </html>
19行目:"header"と20行目:"contents"に分割して、"contents"の部分をスクロールできるようにする。

◆javascript

  1. // #contentsの高さを全体の高さからheaderの高さと20pxとを引いた高さにする
  2. var document_height = $(document).height();
  3. var header_height = $(header).height();
  4. document.getElementById('contents').style.height = (document_height - header_height-20) + "px";
全体(document)の高さから"height"の高さを引いたものを"contents"の高さに設定している。
(ここでは、マージンをもってさらに20px引いた高さに設定している。)
"header"の高さが内容によって変わっても大丈夫。

◆css

  1. html, body {
  2. height: 100%;
  3. margin: 0px;
  4. padding: 0px;
  5. overflow: hidden;
  6. }
  7.  
  8. #header {
  9. background-color: white;
  10. }
  11.  
  12. #contents {
  13. overflow: auto;
  14. background-color: #EFE;
  15. }
5行目:全体のスクロールを禁止している。
13行目:"contents"部分はスクロールするようにしている。