Универсальный 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 вариант) Имею проблему — по номеру таба переходит с других страниц, но в пределах той же страницы табы не переключаются. Подскажите, пожалуйста, что нужно добавить в скрипт, чтобы со ссылок на той же странице переключались табы?
В моем примере тоже не переключаются?
в примере переключаются. А у меня нет :(
Я скопировал содержимое вашего скрипта в конец своего файла со скриптами
Лучше покажите страницу, где не работает.
Вот здесь, например studer-inverter.ru/products/inverters/aj.html
У вас ссылка на таб имеет вид:
/products/inverters/aj.html#tab2
, а должно быть просто#tab2
, поэтому и не переключается.А как я тогда перейду на эту страницу с другой? У меня правая колонка подключается отдельным файлом на несколько разных страниц, поэтому должен быть полный путь. Можно как-то это исправить?
Обновил скрипт. Теперь будет работать и в вашем случае.
А вы точно закачали обновление? По ссылке «скачать» выше старый файл лежит.
Может сюда код вставите, у вас ведь он коротенький :)
А, я только в примере обновил, про архив забыл. Теперь уже можете скачать новый файл.
Спасибо! Теперь все супер! Сделал со вложенными табами, очень удобно стало просматривать длинные страницы.
Спасибо, преймущество в том что нормальные стили. jquery увы перекосило у меня на сайте.
назови здесь стили по другому и все будет ок, я вот единички добавлял дабы не было прекосов
Извините за возможно глупый вопрос, а можно, что б например при нажатии на один из табов, например tab1, чтобы отобразился контент всех табов. Спасибо.
Сделать можно много чего. Но смысла в этом не вижу.
Уже сделал. Смысл есть например для интернет-магазинов. Вот пример.
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».
курите в сторону 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
Причина в скрипте приветствия. Я его обновил. Удалите старый код и вставьте новый.
Интересно получается… Вставила новый код скрипта приветствия — приветствие пропало и вкладки не работают. Поставила обратно старый код приветствия — приветствие заработало, вкладки — нет. Вставила код вкладок ПЕРЕД кодом приветствия (до этого было Приветствие потом Вкладки) — заработало и то и другое… Что же это может быть???
Не знаю.
Мне безумно подходит данное решение, но у меня на сайте это не работает. Конкретно не работает переключение по вкладкам, каждая вкладка подсвечивается, но перехода нет, установила данное решение dimox.name/examples/universal-jquery-tabs-script/cookies.html
Я не программист, поэтому не могу понять что к чему.
Дайте адрес страницы, где можно посмотреть вживую, попробую разобраться.
Доброй ночи
Скрипт ваще бомба, но есть вопросик)
у меня в табах флеш плееры
когда я запускаю один он воспроизводит когда переключаю на другой таб он не остонавливается
Как сделать чтоб воспроизведение отключалось
я знаю что это возможно, но не знаю как
Не представляю, как.
Вот тут так табы работают посмотрете zerx.ru/38 961-patrul.html
Возможно так-же настроить? чтоб плеер выключался
Я в вас верю!!!
Отличные табы, спасибо за прекрасную работу.
Здравствуйте, советую дополнить вариант с localStorage информацией о том, что эта технология лучше печенек тем, что:
много места для хранения;
работа на стороне клиента;
учитывает обновление страницы;
нет отправки на сервер.
Куки по сравнению с HTML5 сильно проигрывают.
Таблицу поддержки браузеров можно найти тут 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)