ページ内リンクでスクロールさせる

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>ページ内リンクでスクロールさせる</title>
  6. <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
  7. <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
  8. <script type="text/javascript">
  9.   function viewModel() {
  10.     var self = this;
  11.     
  12.     self.movePage = function (idName) {
  13.       var moveId = $("#" + idName).offset();
  14.       if (moveId != undefined) {
  15.         var speed = 500; // スクロールの速度
  16.         var position = moveId.top; 
  17.         $("html, body").animate({scrollTop:position}, speed, "swing");
  18.       }
  19.     };
  20.   };
  21.   
  22.   $(document).ready(function () {
  23.     ko.applyBindings(new viewModel());
  24.   });
  25. </script>
  26. <style type="text/css">
  27.   .ko006 {
  28.     padding:20px 10px;
  29.   }
  30.   .ko006 p{
  31.     padding:80px 0;
  32.     margin-top:10px;
  33.     border: 1px solid #aaa;
  34.     background-color: #e0e0e0;
  35.   }
  36. </style>
  37. </head>
  38. <body>
  39. <h1>ページ内リンクでスクロールさせる</h1>
  40. <div class="ko006">
  41.   <div>
  42.     <a href="#" data-bind="click: function() { $root.movePage('ko01'); }">ko01へ▼</a>、
  43.     <a href="#" data-bind="click: function() { $root.movePage('ko02'); }">ko02へ▼</a>、
  44.     <a href="#" data-bind="click: function() { $root.movePage('ko03'); }">ko03へ▼</a>、
  45.   </div>
  46.   <p><a id="ko01" name="ko01"></a>
  47.     IDが「ko01」
  48.   </p>
  49.   <div>
  50.     <a href="#" data-bind="click: function() { $root.movePage('ko01'); }">ko01へ▼</a>、
  51.     <a href="#" data-bind="click: function() { $root.movePage('ko02'); }">ko02へ▼</a>、
  52.     <a href="#" data-bind="click: function() { $root.movePage('ko03'); }">ko03へ▼</a>、
  53.   </div>
  54.   <p><a id="ko02" name="ko02"></a>
  55.     IDが「ko02」
  56.   </p>
  57.   <div>
  58.     <a href="#" data-bind="click: function() { $root.movePage('ko01'); }">ko01へ▼</a>、
  59.     <a href="#" data-bind="click: function() { $root.movePage('ko02'); }">ko02へ▼</a>、
  60.     <a href="#" data-bind="click: function() { $root.movePage('ko03'); }">ko03へ▼</a>、
  61.   </div>
  62.   <p><a id="ko03" name="ko03"></a>
  63.     IDが「ko03」
  64.   </p>
  65.   <div>
  66.     <a href="#" data-bind="click: function() { $root.movePage('ko01'); }">ko01へ▼</a>、
  67.     <a href="#" data-bind="click: function() { $root.movePage('ko02'); }">ko02へ▼</a>、
  68.     <a href="#" data-bind="click: function() { $root.movePage('ko03'); }">ko03へ▼</a>、
  69.   </div>
  70. </div>
  71. <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
  72. <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
  73. <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
  74. </div>
  75. <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
  76. Copyright &copy; 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
  77. </div>
  78. </body>
  79. </html>