Pionowe karty z JQuery?

80

Chcę, aby zakładki znajdowały się po lewej stronie strony, a nie u góry. Już ładuję jQuery z innych powodów (efektów), więc wolę używać jQuery do innego frameworka UI. Wyszukiwanie w „pionowych kartach jquery” daje linki do prac w toku.

Czy tworzenie pionowych zakładek w różnych przeglądarkach jest najeżone, czy jest to tak trywialne, że gdy masz już rozwiązanie, nie warto publikować przykładowego kodu?

Thomas L Holaday
źródło

Odpowiedzi:

48

Przyjrzyj się pionowym kartom Docu interfejsu użytkownika jQuery . Wypróbowałem to, zadziałało dobrze.

<style type="text/css">
/* Vertical Tabs
----------------------------------*/
.ui-tabs-vertical { width: 55em; }
.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
</style> 

<script>
    $(document).ready(function() {
        $("#tabs").tabs().addClass('ui-tabs-vertical ui-helper-clearfix');
        $("#tabs li").removeClass('ui-corner-top').addClass('ui-corner-left');

    });
</script>
ig4
źródło
7

Spróbuj tutaj:

http://www.sunsean.com/idTabs/

Rzut oka na kartę Wolność może mieć to, czego potrzebujesz.

Daj mi znać, jeśli znajdziesz coś dla siebie. Pracowałem nad tym samym problemem kilka miesięcy temu i zdecydowałem się wdrożyć samodzielnie. Podoba mi się to, co zrobiłem, ale byłoby miło skorzystać ze standardowej biblioteki.

David Berger
źródło
Nanotabs jest naprawdę fajny. Będę szukał miejsc, gdzie mogę to wykorzystać.
Thomas L Holaday
6

Stworzyłem pionowe menu i zakładki zmieniające się na środku strony. Zmieniłem dwa słowa w źródle kodu i rozdzieliłem dwa różne elementy div

menu:

<div class="arrowgreen">
  <ul class="tabNavigation"> 
    <li> <a href="#first" title="Home">Tab 1</a></li>
    <li> <a href="#secund" title="Home">Tab 2</a></li>
  </ul>
</div> 

zadowolony:

<div class="pages">
  <div id="first">
    CONTENT 1
  </div>
  <div id="secund">
    CONTENT 2
  </div>
</div>

kod działa z oddzielnymi elementami div

$(function () {
    var tabContainers = $('div.pages > div');

    $('div.arrowgreen ul.tabNavigation a').click(function () {
        tabContainers.hide().filter(this.hash).show();

        $('div.arrowgreen ul.tabNavigation a').removeClass('selected');
        $(this).addClass('selected');

        return false;
    }).filter(':first').click();
});
Lee Taylor
źródło
2
wygląda na to, że jego zdarzenie kliknięcia znajduje się na tagach
rposky
4
//o_O\\  (Poker Face) i know its late

po prostu dodaj poniżej styl css

<style type="text/css">

   /* Vertical Tabs ----------------------------------*/
 .ui-tabs-vertical { width: 55em; }
 .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
 .ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
 .ui-tabs-vertical .ui-tabs-nav li a { display:block; }
 .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
 .ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}

</style>

AKTUALIZACJA! http://jqueryui.com/tabs/#vertical

Code Spy
źródło
Podany link jest martwy. Masz nowy link?
Himanshu Jansari
2

Nie spodziewałbym się, że karty pionowe będą wymagały innego JavaScript niż karty poziome. Jedyną rzeczą, która byłaby inna, jest CSS do prezentowania zakładek i treści na stronie. JS dla zakładek generalnie nie więcej niż pokazuje / ukrywa / może ładować zawartość.

mdja
źródło
0

Spójrz na Listamatic . Karty są semantycznie tylko listą elementów stylizowanych w określony sposób. Nie potrzebujesz nawet javascript, aby pionowe zakładki działały, jak pokazują różne przykłady w Listamatic.

Ryan Bolger
źródło
0

super prosta funkcja, która pozwoli ci stworzyć własną strukturę tabulatorów / akordeonów tutaj: http://jsfiddle.net/nabeezy/v36DF/

bindSets = function (tabClass, tabClassActive, contentClass, contentClassHidden) {
        //Dependent on jQuery
        //PARAMETERS
        //tabClass: 'the class name of the DOM elements that will be clicked',
        //tabClassActive: 'the class name that will be applied to the active tabClass element when clicked (must write your own css)',
        //contentClass: 'the class name of the DOM elements that will be modified when the corresponding tab is clicked',
        //contentClassHidden: 'the class name that will be applied to all contentClass elements except the active one (must write your own css)',
        //MUST call bindSets() after dom has rendered

        var tabs = $('.' + tabClass);
        var tabContent = $('.' + contentClass);
        if(tabs.length !== tabContent.length){console.log('JS bindSets: sets contain a different number of elements')};
        tabs.each(function (index) {
            this.matchedElement = tabContent[index];
            $(this).click(function () {
                tabs.each(function () {
                    this.classList.remove(tabClassActive);
                });
                tabContent.each(function () {
                    this.classList.add(contentClassHidden);
                });
                this.classList.add(tabClassActive);
                this.matchedElement.classList.remove(contentClassHidden);
            });
        })
        tabContent.each(function () {
            this.classList.add(contentClassHidden);
        });

        //tabs[0].click();
    }
bindSets('tabs','active','content','hidden');
Joe Naber
źródło