Универсальный jQuery-скрипт для блоков с вкладками (табами)
Вступление Мое знакомство с фреймворком jQuery произошло в 2008-м году, после того, как, однажды, на одном из англоязычных сайтов я нашел jQuery-скрипт, который позволяет создавать блоки с удобными вкладками. Этому скрипту я посвятил отдельный пост на данном блоге. С тех пор прошло 2 года, ...
Комментарии (978)
Да уж а в блог засунуть придется попотеть.
Кстати
можешь дать код который стоит у тебя в сайдбаре, просто я также хочу по 2 вкладки выводить если не жалко конечно )) Заранее спасибо!
Все уже не надо сам разобрался как надо делать
Доброго времени суток. Спасибки за статью, реализовал у себя. Очень надо помощь привязать ссылки из основного меню к табам. Если есть уже такая статья очень хочу почитать.
Почти получилось:
Осталось достроить вторую половину с tabs1, не могу разобраться что я делаю не так.
Задача: переход по вкладкам двумя способами. 1) из div:section – работает; 2) из общего меню ul:tabs1 – переход по содержимому вкладок получился, но только если находишься на той же странице что и вкладки, хочу с любой страницы попасть на вкладку.
ul:tabs.li:not(.current) – я так понял не правильно указанный родитель, если не работает переключение названий вкладок.
Нашел ошибку в коде
заменил на
и все заработало но только в пределах текущей странички.
А как сделать переход с любой другой странички прямо на вкладку?
Смотрите 3-й пример.
Спасибо! Все получилось, прошу простить за не внимательность.
Использую вариант tabs_click-to-activate.js (4 вариант) Имею проблему – по номеру таба переходит с других страниц, но в пределах той же страницы табы не переключаются. Подскажите, пожалуйста, что нужно добавить в скрипт, чтобы со ссылок на той же странице переключались табы?
В моем примере тоже не переключаются?
в примере переключаются. А у меня нет :(
Я скопировал содержимое вашего скрипта в конец своего файла со скриптами
Лучше покажите страницу, где не работает.
Вот здесь, например http://studer-inverter.ru/products/inverters/aj.html
У вас ссылка на таб имеет вид:
/products/inverters/aj.html#tab2
, а должно быть просто#tab2
, поэтому и не переключается.А как я тогда перейду на эту страницу с другой? У меня правая колонка подключается отдельным файлом на несколько разных страниц, поэтому должен быть полный путь. Можно как-то это исправить?
Обновил скрипт. Теперь будет работать и в вашем случае.
А вы точно закачали обновление? По ссылке “скачать” выше старый файл лежит.
Может сюда код вставите, у вас ведь он коротенький :)
А, я только в примере обновил, про архив забыл. Теперь уже можете скачать новый файл.
Спасибо! Теперь все супер! Сделал со вложенными табами, очень удобно стало просматривать длинные страницы.
Спасибо, преймущество в том что нормальные стили. jquery увы перекосило у меня на сайте.
назови здесь стили по другому и все будет ок, я вот единички добавлял дабы не было прекосов
Извините за возможно глупый вопрос, а можно, что б например при нажатии на один из табов, например tab1, чтобы отобразился контент всех табов. Спасибо.
Сделать можно много чего. Но смысла в этом не вижу.
Уже сделал. Смысл есть например для интернет-магазинов. Вот пример.
http://wshop.com.ua/svetodiodnye-lampy/3398-1-led-122.html
Сделал просто – первому табу с названием Все присвоил класс: class=”current allshow”, ну и дописал в скрипте
$(‘ul.tabs’).delegate(‘li.allshow’, ‘click’, function() {
$(this).addClass(‘current’).siblings().removeClass(‘current’)
.parents(‘div.section’).find(‘div.box’).eq($(this).index()).fadeIn(150).siblings(‘div.box’).show();
})
Спасибо Вам большое за Ваш скрипт.
хорошая вещь, еще бы скумекать как это все запустить….
Скрипт настроил как надо, для пользователей всё отлично. Но проблема с поисковиками. Как сделать чтобы поисковики не индексировали текст из вкладок, которые скрыты? У меня просто для каждого раздела сайта в этих вкладках идёт как бы краткое описание раздела и его содержимого. Но теперь google в результатах поиска в кратком описании под ссылкой выдает содержимое из самой первой вкладки, независимо на какую страницу и раздел идёт ссылка. Потому что это самый первый текст который расположен в коде страницы, вот он его первый и индексирует.
Ищите аналогичный скрипт, который загружает содержимое только по клику, что-то типа “ajax tabs”.
курите в сторону http://ru.wikipedia.org/wiki/Noindex
добрый день! подскажите пожалуйста, возможно ли вертикально расположить табы и слева и справа, при этом box оставить на прежнем месте? что для этого нужно изменить в коде?
Чтобы такое сделать, придется дорабатывать скрипт.
доработала. все получилось. спасибо!)
Здравствуйте. Попробовала я вставить этот скрипт в файл темы script.js – почему то не работает. Попробовала сделать отдельный файл tabs.js – работает. В чем может быть проблема? Если эта тема уже обсуждалась – ткните, пожалуйста, а то не нашла ответа.
Неправильно вставляете значит.
В моем общем script.js собраны все скрипты таким образом (хотел бы узнать правильно или нет, но вариант рабочий). Для примера показываю выборочно две функции – табы и зебра таблицы, остальные аналогично:
Правильнее так:
Спасибо, Дмитрий! Давно хотел выяснить этот вопрос.
А как же узнать в чем ошибка? Могут какие-то функции этого скрипта конфликтовать с основными моей темы? И если да, то как их можно найти? Пробовала вставлять прямо в файл footer.php – тоже работает.
Dimox, пользуюсь ещё одной Вашей функцией “Привет, комментатор!”. Когда её удаляю, то скрипт для вкладок работает. Может они “не дружат”? И как их можно помирить в одно .js файле?
Дайте адрес скрипта, я посмотрю, что не так.
http://testiruem.puzyirik.ru/wp-content/themes/vitos_restaurant/script.js
Причина в скрипте приветствия. Я его обновил. Удалите старый код и вставьте новый.
Интересно получается… Вставила новый код скрипта приветствия – приветствие пропало и вкладки не работают. Поставила обратно старый код приветствия – приветствие заработало, вкладки – нет. Вставила код вкладок ПЕРЕД кодом приветствия (до этого было Приветствие потом Вкладки) – заработало и то и другое…. Что же это может быть???
Не знаю.
Мне безумно подходит данное решение, но у меня на сайте это не работает. Конкретно не работает переключение по вкладкам, каждая вкладка подсвечивается, но перехода нет, установила данное решение https://dimox.name/examples/universal-jquery-tabs-script/cookies.html
Я не программист, поэтому не могу понять что к чему.
Дайте адрес страницы, где можно посмотреть вживую, попробую разобраться.
Доброй ночи
Скрипт ваще бомба но есть вопросик )
у меня в табах флеш плееры
когда я запускаю один он воспроизводит когда переключаю на другой таб он не остонавливается
Как сделать чтоб воспроизведение отключалось
я знаю что это возможно но не знаю как
Не представляю, как.
Вот тут так табы работают посмотрете http://zerx.ru/38961-patrul.html
Возможно так-же настроить? чтоб плеер выключался
Я в вас верю!!!
Отличные табы, спасибо за прекрасную работу.
Здравствуйте, советую дополнить вариант с localStorage информацией о том, что эта технология лучше печенек тем, что:
много места для хранения;
работа на стороне клиента;
учитывает обновление страницы;
нет отправки на сервер.
Куки по сравнению с HTML5 сильно проигрывают.
Таблицу поддержки браузеров можно найти тут http://htmlbook.ru/html5/storage
Даже ie8 хавает )
Людям будет полезно знать.
Сего дня ночью подгонял горизонтальные табы под себя, переписал css код, так будет покороче.
Его можно сделать ещё короче на пару десятков символов, я идею дал, дальше сами.
можно ли сделать чтоб при нажатие на таб окно не прыгало, а оставалось на том же месте?
Лично у меня ничего не прыгает.
если табы находятся вверху, то нет проблем, а если сначала идет какой то контент потом табы, тогда и начинает прыгать
Это потому, что высота каждой вкладки разная.
есть варианты сделать чтоб он оставался на месте ?? а то это реально все портит
скриншот там много полезных комментариев, скорее всего поможет в вашем случаи
че за не понятный скрин, зачем он мне?
на выделенную желтым цветом ссылку пробовали нажимать?
Над комментариями есть ссылка “Полезные комментарии”, там есть комменты по этой теме с решениями.
понял, спасибо… помог способ с фиксированной высотой, только там один минус, если в одном box текста на весь экран, а в другом две строчки, высота у обоих будет на весь экран
решение проблемы прыгающей страницы при переключении табов
(function($) {
$(function() {
$(‘ul.tabs’).delegate(‘li:not(.current)’, ‘click’, function() {
var wee=$(window).scrollTop()
$(this).addClass(‘current’).siblings().removeClass(‘current’)
.parents(‘div.section’).find(‘div.box’).hide().eq($(this).index()).fadeIn(150);
$(window).scrollTop(wee)
})
})
})(jQuery)