Как сделать вкладки в карточке товара на OkayCMS и SimplaCMS
При большом количестве информации о товаре её размещение на странице не всегда получается реализовать красиво. В таком случае информацию необходимо структурировать и удобней всего это сделать с помощью вкладок (табов). Такие вкладки несложно добавить на страницу сайта, поэтому мы решили поделится с вами краткой инструкцией по реализации такой доработки.
На базе стандартной OkayCMS или SimplaCMS доработка будет работать так:
- первая вкладка по умолчанию будет открыта;
- активная вкладка выделена;
- при переходе по вкладкам контейнер с контентом будет плавно менять свою высоту в зависимости от объема содержимого;
- доработка дает возможность добавлять несколько разных блоков с вкладками на одной странице сайта.
Важно: Данный код необходимо разместить в файл с расширением tpl, где Вам необходимо вывести вкладки, например, в карточке товара для отображения во вкладках информации - Описание товара, Характеристики, Отзывы. (В данном случае это product.tpl. Блок размещаем в том месте кода, где Вы хоитите выводить вкладки.)
<div class="tabs"> <div class="tab_navigation"> <a href="#tab1" class="tab_navigation_link">Название таба №1</a> <a href="#tab2" class="tab_navigation_link">Название таба №2</a> <a href="#tab3" class="tab_navigation_link">Название таба №3</a> </div> <div class="tab_container"> <div id="tab1" class="tab">Содержимое таба №1</div> <div id="tab2" class="tab">Содержимое таба №2</div> <div id="tab3" class="tab">Содержимое таба №3</div> </div> </div>
В файле стилей необходимо внести следующее поле для корректного отображения вкладок, а именно скрытия неактивных вкладок:
.tab{display: none;}
$('.tabs').each(function(i) { var cur_nav = $(this).find('.tab_navigation'), cur_tabs = $(this).find('.tab_container'); if(cur_nav.children('.selected').size() > 0) { $(cur_nav.children('.selected').attr("href")).show(); cur_tabs.css('height', cur_tabs.children($(cur_nav.children('.selected')).attr("href")).outerHeight()); } else { cur_nav.children().first().addClass('selected'); cur_tabs.children().first().show(); cur_tabs.css('height', cur_tabs.children().first().outerHeight()); } }); $('.tab_navigation_link').click(function(e){ e.preventDefault(); if($(this).hasClass('selected')){ return true; } var cur_nav = $(this).closest('.tabs').find('.tab_navigation'), cur_tabs = $(this).closest('.tabs').find('.tab_container'); cur_tabs.children().hide(); cur_nav.children().removeClass('selected'); $(this).addClass('selected'); $($(this).attr("href")).fadeIn(200); cur_tabs.css('height', cur_tabs.children($(this).attr("href")).outerHeight()); });
Если возникнут проблемы, вы знаете к кому обратиться :)