This is Tabpanel using Knockout.js
A Pen by Minoru Hayakawa on CodePen.
| <div id="tab"> | |
| <ul class="ui-tab" role="tablist"> | |
| <li role="tab"> | |
| <a href="#tab1" data-bind="click: showBlock, css: { 'active': selected() == 'tab1' || init() == 1 }">Tab1</a> | |
| </li> | |
| <li role="tab"> | |
| <a href="#tab2" data-bind="click: showBlock, css: { 'active': selected() == 'tab2' }">Tab2</a> | |
| </li> | |
| <li role="tab"> | |
| <a href="#tab3" data-bind="click: showBlock, css: { 'active': selected() == 'tab3' }">Tab3</a> | |
| </li> | |
| </ul> | |
| <div class="ui-tabpanel" role="tabpanel" data-bind="visible: selected() == 'tab1' || init() == 1"> | |
| <p>TabPanel1 Tab Panel1 Tab Panel1 Tab Panel1 Tab Panel1</p> | |
| </div> | |
| <div class="ui-tabpanel" role="tabpanel" data-bind="visible: selected() == 'tab2'"> | |
| <p>TabPanel2 Tab Panel2 Tab Panel2 Tab Panel2 Tab Panel2</p> | |
| </div> | |
| <div class="ui-tabpanel" role="tabpanel" data-bind="visible: selected() == 'tab3'"> | |
| <p>TabPanel3 Tab Panel3 Tab Panel3 Tab Panel3 Tab Panel3</p> | |
| </div> | |
| </div> |
| var TabViewModel = function(){ | |
| var self = this; | |
| //Set href value of element | |
| self.selected = ko.observable(null); | |
| //initial set to show first tabpanel when loading page | |
| self.init = ko.observable(1); | |
| //Get href value og element | |
| self.getHref = function(){ | |
| var target; | |
| var element = event.target.hash; | |
| target = element.substr(1); | |
| return target; | |
| }; | |
| //Show Tabpanel | |
| self.showBlock = function(){ | |
| var target = self.getHref(); | |
| self.selected(target); | |
| self.init(2); | |
| }; | |
| }; | |
| ko.applyBindings(new TabViewModel()); |
| div, p, ul { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| #tab { | |
| width: 400px; | |
| } | |
| .ui-tab { | |
| list-style: none; | |
| text-align: center; | |
| } | |
| .ui-tab li { | |
| display: inline-block; | |
| width: 100px; | |
| text-align: center; | |
| border-top: 1px solid #999; | |
| border-left: 1px solid #999; | |
| border-right: 1px solid #999; | |
| border-radius: 5px 5px 0 0; | |
| } | |
| .ui-tab li a { | |
| text-decoration: none; | |
| display: block; | |
| color: #000; | |
| padding: 6px 10px 5px; | |
| } | |
| .ui-tabpanel { | |
| border: 1px solid #999; | |
| min-height: 200px; | |
| padding: 10px; | |
| } | |
| .active { | |
| padding: 10px 10px 5px !important; | |
| border-bottom: 1px solid #fff; | |
| margin: 0 0 -1px; | |
| } |
This is Tabpanel using Knockout.js
A Pen by Minoru Hayakawa on CodePen.