Вертикальні вкладки з JQuery?


80

Мені потрібні вкладки вздовж лівої частини сторінки, а не вгорі. Я вже завантажую jQuery з інших причин (ефектів), тому я віддаю перевагу використанню jQuery іншому фреймворку UI. Пошуки за "вертикальними вкладками jquery" дають посилання на незавершені роботи.

Примушувати вертикальні вкладки працювати в браузерах неприємно, чи це настільки тривіально, що, коли у вас є рішення, здається не варто розміщувати приклад коду?

Відповіді:


48

Погляньте на вертикальні вкладки jQuery UI Docu . Я пробую це, це спрацювало нормально.

<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>

7

Спробуйте тут:

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

Погляд на вкладці Freedom може мати те, що вам потрібно.

Повідомте мене, якщо ви знайдете щось, що вам подобається. Я працював над точно такою ж проблемою кілька місяців тому і вирішив реалізувати себе. Мені подобається те, що я робив, але, можливо, було б приємно користуватися стандартною бібліотекою.


Nanotabs - це дійсно круто. Я буду шукати місця, де його використовувати.
Thomas L Holaday,

6

Я створив вертикальне меню та вкладки, що змінюються в середині сторінки. Я змінив два слова у джерелі коду і виділив два різні div

меню:

<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> 

зміст:

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

код працює з 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();
});

2
схоже, що його подія натискання на тегах a
rposky

4
//o_O\\  (Poker Face) i know its late

просто додайте нижче css стиль 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>

ОНОВЛЕНО! http://jqueryui.com/tabs/#vertical


Дане посилання мертве. У вас є нове посилання?
Хіманшу Янсарі

2

Я б не очікував, що вертикальні вкладки потребуватимуть іншого Javascript від горизонтальних. Єдине, що відрізнялося б, це CSS для представлення вкладок та вмісту на сторінці. JS для вкладок зазвичай не більше, ніж показує / приховує / може завантажувати вміст.



0

Погляньте на Listamatic . Вкладки - це семантично лише перелік елементів, стилізованих певним чином. Вам навіть не обов'язково потрібен javascript, щоб вертикальні вкладки працювали як різні приклади на шоу Listamatic.


0

надзвичайно проста функція, яка дозволить вам створити власну структуру вкладки / акордеону тут: 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');
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.