Advertisement
Guest User

Untitled

a guest
Dec 14th, 2008
794
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 4.45 KB | None | 0 0
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. var selecteditem;
  5. function load()
  6. {
  7.     var lists = document.getElementById('container').getElementsByTagName('ol');
  8.     for ( var i = 0; i < lists.length; i++ )
  9.     {
  10.         if ( lists[i].className == 'itemList' ) continue;
  11.        
  12.         lists[i].onscroll = updateSelecteditem;
  13.         var items = lists[i].getElementsByTagName('li');
  14.         for ( var j = 0; j < items.length; j++ )
  15.         {
  16.             items[j].onclick = function() { changeFocus(this, true); };
  17.         }
  18.     }
  19. }
  20.  
  21. function changeFocus(item, force)
  22. {
  23.     if ( selecteditem ) selecteditem.className = '';
  24.     selecteditem = item;
  25.     selecteditem.className = 'selected';
  26.     if ( force ) selecteditem.scrollIntoView(true);
  27. }
  28.  
  29. function updateSelecteditem(event)
  30. {
  31.     var items = event.currentTarget.getElementsByTagName('li');
  32.     var height = event.currentTarget.scrollHeight;
  33.     var displayHeight = event.currentTarget.clientHeight;
  34.     var scrollPosition = event.currentTarget.scrollTop;
  35.     var reverse;
  36.     if ( scrollPosition > ( selecteditem.offsetTop + (.15 * selecteditem.scrollHeight) ) )
  37.     {
  38.         reverse = false;
  39.     }
  40.     else if ( scrollPosition < ( selecteditem.offsetTop - (selecteditem.scrollHeight) ) )
  41.     {
  42.         reverse = true;
  43.     }
  44.     else
  45.     {
  46.         return;
  47.     }
  48.     for ( var next = nextNode(selecteditem, reverse); nextNode(next, reverse); next = nextNode(next, reverse) )
  49.     {
  50.         if ( next.offsetTop > scrollPosition )
  51.         {
  52.             changeFocus(next);
  53.             return;
  54.         }
  55.     }
  56. }
  57.  
  58. function nextNode(node, reverse)
  59. {
  60.     return ( reverse ? node.previousSibling : node.nextSibling );
  61. }
  62. </script>
  63. <style type="text/css">
  64. html, body { width: 100%; }
  65. #container
  66. {
  67.     position: relative;
  68.     top: 4em;
  69.     height: 650px;
  70.     width: 90%;
  71.     z-index: 10;
  72. }
  73.  
  74. ol.itemList li ol
  75. {
  76.     display: none;
  77.     width: 100%;
  78.     position: absolute;
  79.     top: -20px;
  80.     bottom: 0px;
  81.     right: 0px;
  82.     padding: 10px;
  83.     width: 80%;
  84.     border: 2px white groove;
  85.     background: #white;
  86.     list-style: none;
  87.     overflow: auto;
  88. }
  89.  
  90. .active
  91. {
  92.     display: block !important;
  93. }
  94.  
  95. ol.active li:last-child
  96. {
  97.     margin-bottom: 200px;
  98. }
  99.  
  100. ol.itemList li ol li
  101. {
  102.     margin: 5px 10px;
  103.     padding: 10px;
  104.     border: 2px black solid;
  105.     background: grey;
  106.     opacity: .5;
  107.     filter: alpha(opacity=50);
  108.     -moz-border-radius: 15px;
  109. }
  110.  
  111. .selected
  112. {
  113.     background: white !important;
  114.     opacity: 1 !important;
  115.     filter: alpha(opacity=100) !important;
  116. }
  117.  
  118. body { position: fixed; }
  119. </style>
  120. </head>
  121. <body onload="load();">
  122. <div id="container">
  123.     <ol class="itemList">
  124.         <li>
  125.             <h2>Category</h2>
  126.             <ol class="active">
  127.                 <li>
  128.                     <form name="aaa">
  129.                         <p>AAA: aaa</p>
  130.                         <p>BBB: bbb</p>
  131.                         <p>CCC: ccc</p>
  132.                         <p>DDD: ddd</p>
  133.                         <p>EEE: eee</p>
  134.                         <p>FFF: foo bar baz quux</p>
  135.                     </form>
  136.                 </li>
  137.                 <li>
  138.                     <form name="aaa">
  139.                         <p>AAA: aaa</p>
  140.                         <p>BBB: bbb</p>
  141.                         <p>CCC: ccc</p>
  142.                         <p>DDD: ddd</p>
  143.                         <p>EEE: eee</p>
  144.                         <p>FFF: foo bar baz quux</p>
  145.                     </form>
  146.                 </li>
  147.                 <li>
  148.                     <form name="aaa">
  149.                         <p>AAA: aaa</p>
  150.                         <p>BBB: bbb</p>
  151.                         <p>CCC: ccc</p>
  152.                         <p>DDD: ddd</p>
  153.                         <p>EEE: eee</p>
  154.                         <p>FFF: foo bar baz quux</p>
  155.                     </form>
  156.                 </li>
  157.                 <li>
  158.                     <form name="aaa">
  159.                         <p>AAA: aaa</p>
  160.                         <p>BBB: bbb</p>
  161.                         <p>CCC: ccc</p>
  162.                         <p>DDD: ddd</p>
  163.                         <p>EEE: eee</p>
  164.                         <p>FFF: foo bar baz quux</p>
  165.                     </form>
  166.                 </li>
  167.                 <li>
  168.                     <form name="aaa">
  169.                         <p>AAA: aaa</p>
  170.                         <p>BBB: bbb</p>
  171.                         <p>CCC: ccc</p>
  172.                         <p>DDD: ddd</p>
  173.                         <p>EEE: eee</p>
  174.                         <p>FFF: foo bar baz quux</p>
  175.                     </form>
  176.                 </li>
  177.                 <li>
  178.                     <form name="aaa">
  179.                         <p>AAA: aaa</p>
  180.                         <p>BBB: bbb</p>
  181.                         <p>CCC: ccc</p>
  182.                         <p>DDD: ddd</p>
  183.                         <p>EEE: eee</p>
  184.                         <p>FFF: foo bar baz quux</p>
  185.                     </form>
  186.                 </li>
  187.                 <li>
  188.                     <form name="aaa">
  189.                         <p>AAA: aaa</p>
  190.                         <p>BBB: bbb</p>
  191.                         <p>CCC: ccc</p>
  192.                         <p>DDD: ddd</p>
  193.                         <p>EEE: eee</p>
  194.                         <p>FFF: foo bar baz quux</p>
  195.                     </form>
  196.                 </li>
  197.                 <li>
  198.                     <form name="aaa">
  199.                         <p>AAA: aaa</p>
  200.                         <p>BBB: bbb</p>
  201.                         <p>CCC: ccc</p>
  202.                         <p>DDD: ddd</p>
  203.                         <p>EEE: eee</p>
  204.                         <p>FFF: foo bar baz quux</p>
  205.                     </form>
  206.                 </li>
  207.                 <li>
  208.                     <form name="aaa">
  209.                         <p>AAA: aaa</p>
  210.                         <p>BBB: bbb</p>
  211.                         <p>CCC: ccc</p>
  212.                         <p>DDD: ddd</p>
  213.                         <p>EEE: eee</p>
  214.                         <p>FFF: foo bar baz quux</p>
  215.                     </form>
  216.                 </li>
  217.                 <!--li style="height: 200px; background: #6C706D; border: none !important;"></li-->
  218.             </ol>
  219.         </li>
  220.     </ol>
  221. </div>
  222. </body>
  223. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement