tabpane.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <!DOCTYPE html>
  2. <html>
  3. <!--
  4. Copyright 2010 The Closure Library Authors. All Rights Reserved.
  5. Use of this source code is governed by the Apache License, Version 2.0.
  6. See the COPYING file for details.
  7. -->
  8. <head>
  9. <title>goog.ui.TabPane</title>
  10. <meta charset="utf-8">
  11. <script src="../base.js"></script>
  12. <script>
  13. goog.require('goog.ui.TabPane');
  14. </script>
  15. <link rel="stylesheet" href="css/demo.css">
  16. <style>
  17. .goog-tabpane {
  18. background: threedface;
  19. padding-left: 1px;
  20. position: relative;
  21. }
  22. .goog-tabpane-tabs {
  23. list-style: none;
  24. margin: 0px;
  25. padding: 0px;
  26. height: 1ex;
  27. position: relative;
  28. }
  29. .goog-tabpane-left .goog-tabpane-tabs {
  30. float: left;
  31. }
  32. .goog-tabpane-right .goog-tabpane-tabs {
  33. float: right;
  34. }
  35. .goog-tabpane-cont {
  36. overflow: auto;
  37. background: threedface;
  38. border: 1px solid;
  39. border-color: threedhighlight threedshadow threedshadow threedhighlight;
  40. padding: 2px;
  41. height: 200px;
  42. }
  43. .goog-tabpane-tab, .goog-tabpane-tab-selected {
  44. display: block;
  45. padding: 0px 3ex;
  46. background: threedface;
  47. border: 1px solid;
  48. margin: 0px;
  49. }
  50. .goog-tabpane-top .goog-tabpane-tab,
  51. .goog-tabpane-top .goog-tabpane-tab-selected,
  52. .goog-tabpane-bottom .goog-tabpane-tab,
  53. .goog-tabpane-bottom .goog-tabpane-tab-selected {
  54. float: left;
  55. }
  56. .goog-tabpane-top .goog-tabpane-tab,
  57. .goog-tabpane-top .goog-tabpane-tab-selected {
  58. border-color: threedhighlight threedshadow threedface threedhighlight;
  59. }
  60. .goog-tabpane-bottom .goog-tabpane-tab,
  61. .goog-tabpane-bottom .goog-tabpane-tab-selected {
  62. border-color: threedface threedshadow threedshadow threedhighlight;
  63. }
  64. .goog-tabpane-left .goog-tabpane-tab,
  65. .goog-tabpane-left .goog-tabpane-tab-selected {
  66. border-color: threedhighlight threedface threedshadow threedhighlight;
  67. }
  68. .goog-tabpane-right .goog-tabpane-tab,
  69. .goog-tabpane-right .goog-tabpane-tab-selected {
  70. border-color: threedhighlight threedshadow threedshadow threedface;
  71. }
  72. .goog-tabpane-top .goog-tabpane-tab {
  73. margin-top: 3px;
  74. }
  75. .goog-tabpane-tab-selected {
  76. font-weight: bold;
  77. }
  78. .goog-tabpane-tab-selected,
  79. .goog-tabpane-tab-selected {
  80. padding-bottom: 2px;
  81. padding-top: 2px;
  82. }
  83. .goog-tabpane-top .goog-tabpane-tab-selected {
  84. position: relative;
  85. top: 1px;
  86. }
  87. .goog-tabpane-bottom .goog-tabpane-tab-selected {
  88. position: relative;
  89. top: -1px;
  90. }
  91. .goog-tabpane-left .goog-tabpane-tab-selected {
  92. position: relative;
  93. left: 1px;
  94. }
  95. .goog-tabpane-right .goog-tabpane-tab-selected {
  96. position: relative;
  97. left: -1px;
  98. }
  99. #tabpane2 .goog-tabpane-tab {
  100. margin-top: 0px;
  101. }
  102. p {
  103. margin-top: 0px;
  104. }
  105. </style>
  106. </head>
  107. <body>
  108. <h1>goog.ui.TabPane</h1>
  109. <div id="tabpane1"></div>
  110. <strong id="tabpane1index"></strong> selected in tab pane 1.<br/><br/>
  111. <h3>Bottom tabs</h3>
  112. <div id="tabpane2">
  113. <div>
  114. <h2>Initial page</h2>
  115. <p>
  116. Page created automatically from tab pane child node.
  117. </p>
  118. </div>
  119. </div>
  120. <h3>Left tabs</h3>
  121. <div id="tabpane3">
  122. <div>
  123. <h2>Front page!</h2>
  124. <p>
  125. Page created automatically from tab pane child node.
  126. </p>
  127. </div>
  128. </div>
  129. <h3>Right tabs</h3>
  130. <div id="tabpane4">
  131. <div>
  132. <h2>Right 1</h2>
  133. <p>
  134. Page created automatically from tab pane child node.
  135. </p>
  136. </div>
  137. <div>
  138. <h2>Right 2</h2>
  139. <p>
  140. So was this page.
  141. </p>
  142. </div>
  143. </div>
  144. <div id="page1">
  145. <h2>Page 1</h2>
  146. <p>
  147. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ac augue sed
  148. massa placerat iaculis. Aliquam tempor dictum massa. Quisque vehicula justo
  149. ut tellus. Integer urna. Aliquam libero justo, ornare at, pretium ac,
  150. vulputate quis, ante. Sed arcu. Etiam sit amet turpis. Maecenas pede. Sed
  151. turpis. Sed ultricies commodo nisl. Morbi eget magna quis nisi euismod
  152. porttitor. Vivamus lacinia massa et sem. Donec consequat ligula sed tellus.
  153. Suspendisse enim sapien, vestibulum nec, eleifend id, placerat sit amet,
  154. risus. Mauris in pede ac lorem varius facilisis. Donec dui. Nam mollis nisi
  155. eu neque. Cras luctus nisl at sapien. Ut eleifend, odio id luctus
  156. pellentesque, lorem diam dictum velit, ac gravida lectus magna vel velit.
  157. </p>
  158. <p>
  159. Etiam tempus, ante semper iaculis ultrices, ligula eros lobortis tellus, sit
  160. amet luctus dolor nisl sit amet dolor. Donec in velit. Vivamus facilisis.
  161. Proin nisi felis, commodo ut, porta dignissim, vestibulum quis, ligula. Ut
  162. egestas porttitor tortor. Ut porttitor diam a est. Sed placerat. Aliquam
  163. luctus est a risus. Aenean blandit nibh et justo. Phasellus vel lectus ut
  164. leo dictum consequat. Nam tincidunt facilisis nulla. Nunc nonummy tempus
  165. quam. Aliquam id enim. Sed rhoncus cursus lorem. Curabitur ultricies, enim
  166. quis eleifend mattis, est velit dapibus dolor, quis laoreet arcu tortor
  167. volutpat tortor. Pellentesque habitant morbi tristique senectus et netus et
  168. malesuada fames ac turpis egestas. Curabitur nec mauris et purus aliquam
  169. mattis. Cras rhoncus posuere sapien. Class aptent taciti sociosqu ad litora
  170. torquent per conubia nostra, per inceptos hymenaeos.
  171. </p>
  172. <p>
  173. Mauris lacinia ornare nunc. Donec molestie. Sed nulla libero, tincidunt vel,
  174. porta sit amet, nonummy eget, augue. Class aptent taciti sociosqu ad litora
  175. torquent per conubia nostra, per inceptos hymenaeos. Donec ac risus. Cras
  176. euismod congue orci. Mauris mattis, ipsum at vestibulum bibendum, odio est
  177. rhoncus nisi, vel aliquam ante velit quis neque. Duis nonummy tortor id
  178. ante. Aenean auctor odio non nulla. Fusce hendrerit, mi et fringilla
  179. venenatis, sem ipsum fermentum lorem, vel posuere urna eros eget massa.
  180. </p>
  181. <p>
  182. Nulla nec sapien eget mauris pretium tempor. Phasellus scelerisque quam id
  183. mauris. Cras erat ante, pretium ut, vestibulum ac, tincidunt ut, nunc.
  184. Vivamus velit sapien, feugiat ac, elementum ac, viverra non, leo. Phasellus
  185. imperdiet, magna at placerat consectetuer, enim urna aliquam augue, nec
  186. tincidunt justo lectus nec lectus. Nam neque. Nullam ullamcorper euismod
  187. augue. Maecenas arcu purus, sollicitudin nec, consequat a, gravida quis,
  188. massa. Nullam bibendum viverra risus. Sed nibh. Morbi dapibus pellentesque
  189. erat.
  190. </p>
  191. <p>
  192. Cras non tellus. Maecenas nulla est, tincidunt sed, porta sit amet, placerat
  193. sed, diam. Morbi pulvinar. Vestibulum ante ipsum primis in faucibus orci
  194. luctus et ultrices posuere cubilia Curae; Praesent felis lacus, pretium at,
  195. egestas sed, fermentum at, est. Pellentesque sagittis feugiat orci. Nam
  196. augue. Sed eget dolor. Proin vitae metus scelerisque massa fermentum tempus.
  197. Nulla facilisi. Pellentesque habitant morbi tristique senectus et netus et
  198. malesuada fames ac turpis egestas. Aenean eleifend, leo gravida mollis
  199. tempor, tellus ipsum porttitor leo, eget condimentum tellus neque sit amet
  200. orci. Sed non lectus. Suspendisse nonummy purus ac massa. Sed quis elit
  201. dapibus nunc semper porta. Maecenas risus eros, euismod quis, sagittis eget,
  202. aliquet eget, dui. Donec vel nibh. Vivamus nunc purus, euismod in, feugiat
  203. in, sodales vitae, nunc. Nulla lobortis.
  204. </p>
  205. </div>
  206. <div id="page2">
  207. <p>
  208. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et nisi id
  209. lorem tempor semper. Suspendisse ante. Integer ligula urna, venenatis quis,
  210. placerat vitae, commodo quis, sapien. Quisque nec lectus. Sed non dolor. Sed
  211. congue, nisi in pharetra consequat, odio diam pulvinar arcu, in laoreet elit
  212. risus id ipsum. Class aptent taciti sociosqu ad litora torquent per conubia
  213. nostra, per inceptos hymenaeos. Praesent tellus enim, imperdiet a, sagittis
  214. id, pulvinar vel, tortor. Integer nulla. Sed nulla augue, lacinia id,
  215. vulputate eu, rhoncus non, ante. Integer lobortis eros vitae quam. Phasellus
  216. sagittis, ipsum sollicitudin bibendum laoreet, arcu erat luctus lacus, vel
  217. pharetra felis metus tincidunt diam. Cras ac augue in enim ultricies
  218. aliquam.
  219. </p>
  220. <input type="text" />
  221. <select><option>Select box</option></select>
  222. <button>Button</button>
  223. </div>
  224. <div id="page5">
  225. <h2>Page 5</h2>
  226. <p>
  227. This is page 5.
  228. </p>
  229. </div>
  230. <script>
  231. var tabPane = new goog.ui.TabPane(document.getElementById('tabpane1'));
  232. tabPane.addPage(new goog.ui.TabPane.TabPage(
  233. document.getElementById('page1')));
  234. tabPane.addPage(new goog.ui.TabPane.TabPage(
  235. document.getElementById('page2'), 'Page 2'));
  236. tabPane.addPage(new goog.ui.TabPane.TabPage(null, 'Page 3'));
  237. tabPane.addPage(new goog.ui.TabPane.TabPage('Page 5'));
  238. tabPane.addPage(new goog.ui.TabPane.TabPage('Page 4'), 3);
  239. var pg5 = new goog.ui.TabPane.TabPage(document.getElementById('page5'))
  240. tabPane.addPage(pg5);
  241. tabPane.addPage(new goog.ui.TabPane.TabPage('Page 6'));
  242. tabPane.removePage(pg5);
  243. tabPane.removePage(2);
  244. function tabChanged(event) {
  245. goog.dom.setTextContent(document.getElementById('tabpane1index'),
  246. event.page.getTitle());
  247. }
  248. goog.events.listen(tabPane, goog.ui.TabPane.Events.CHANGE, tabChanged);
  249. tabPane.setSelectedIndex(1);
  250. var tabPane2 = new goog.ui.TabPane(document.getElementById('tabpane2'),
  251. goog.ui.TabPane.TabLocation.BOTTOM);
  252. tabPane2.addPage(new goog.ui.TabPane.TabPage('Page 7'));
  253. tabPane2.addPage(pg5);
  254. pg5.select();
  255. pg5.setTitle('Renamed Page');
  256. var tabPane3 = new goog.ui.TabPane(document.getElementById('tabpane3'),
  257. goog.ui.TabPane.TabLocation.LEFT);
  258. tabPane3.addPage(new goog.ui.TabPane.TabPage('Page 7'));
  259. var tabPane4 = new goog.ui.TabPane(document.getElementById('tabpane4'),
  260. goog.ui.TabPane.TabLocation.RIGHT);
  261. tabPane4.addPage(new goog.ui.TabPane.TabPage('Page 99'));
  262. </script>
  263. </body>
  264. </html>