#jquery #ruby-on-rails #37-signals
#jquery #ruby-on-rails #37-сигналы
Вопрос:
Я пытаюсь украсить страницу тура на своем сайте, и мне нравится, как выглядит базовый тур 37signals: http://basecamphq.com/tour/#/communicate
Я предполагаю, что они используют Jquery или какой-либо другой эквивалент для замены divs, но я полный новичок в jquery и не уверен, как это сделать.
Если у кого-нибудь есть какие-либо предложения или ресурсы, чтобы указать мне на это, это было бы очень ценно.
Приветствия!
Ответ №1:
У вас будут свои навигационные ссылки на странице тура для каждой подстраницы, они могут быть такими:
<ul>
<li>
<a href="#stuff1" class="tour-nav-link" id="l-1" data-content-id="t-1">Stuff 1</a>
</li>
<li>
<a href="#stuff2" class="tour-nav-link" id="l-2" data-content-id="t-2">Stuff 2</a>
</li>
</ul>
Обратите внимание на атрибут data-content-id в ссылках, вы добавляете в них идентификатор соответствующего тега div, чтобы сопоставить их.
У вас также будет каждая из ваших «подстраниц» вашего тура в их собственном div. Ваша страница тура будет содержать такой код:
<div id="t-1" class="tour-item first">
Stuff goes here
</div>
<div id="t-2" class="tour-item">
Different stuff goes here
</div>
Используя CSS, вы можете скрыть все div, кроме первого. Это будет в вашем файле CSS:
div.tour-item { display: none; }
div.tour-item.first { display: block; }
Теперь вам просто нужно переключить видимость при нажатии на ссылки с помощью jquery:
$('a.tour-nav-link').live('click', function(){
/* This next line using an animation to hide all div's that are not the selected one */
$('div.tour-item').not('div#' $(this).data('content-id')).slideUp();
/* This will now animate to bring into view the selected one */
$('div#' $(this).data('content-id')).slideDown();
});
Вы можете использовать другие анимации или просто .show() и .hide(), если хотите..
Комментарии:
1. Джоэл, в наши дни ты почти везде в Интернете, и мне это нравится. Еще раз спасибо за вашу помощь.