Плавное сворачивание / разворачивание блока + куки
2011-10-21 Дата: Пятница, 21.10.2011, 23:06 | Сообщение # 61
Рядовой
Группа: Пользователи
Статус: Offline
получается так ? Code
$(document).ready(function() { $('.hideWrap .hideBtn').each(function(i) { var cookie = getCookie('hideBtn' + i); if (cookie && cookie.indexOf('close') != -1) { $(this).toggleClass('close').parents('.hideWrap').find('.hideCont').hide(); } }); $('.hideWrap .hideBtn').click(function() { var cont = $(this).parents('.hideWrap').find('.hideCont'); $(this).toggleClass('close'); if (cont.is(':hidden')) { cont.slideDown('normal'); } else { cont.slideUp('normal'); } var hideBtn = $('.hideWrap .hideBtn').index($(this)), isShow = $(this).attr('class'); setCookie('hideBtn' + hideBtn, isShow, 365); return false; }); });
Сообщение отредактировал remus - Пятница, 21.10.2011, 23:10
2011-10-22 Дата: Суббота, 22.10.2011, 02:03 | Сообщение # 62
Аццкий кодер
Группа: Администраторы
Статус: Unknown
remus , Quote (remus )
получается так ?
Ну вот ... ) А говоришь “не умею” ... ...
☑ Пример №5 Code
<script type="text/javascript"> $(document).ready(function(){ /* Start DocumentReady */ $('.hideWrap .hideBtn').each(function(i){ var cookie = getCookie('hideBtn'+i); if(cookie&&cookie.indexOf('close')!=-1){ $(this).addClass('close').parents('.hideWrap').find('.hideCont').hide(); } }); $('.hideWrap .hideBtn').click(function(){ var cont = $(this).parents('.hideWrap').find('.hideCont'); if(cont.is(':hidden')){ $(this).removeClass('close'); cont.slideDown('normal') }else{ $(this).addClass('close'); cont.slideUp('normal'); } var hideBtn = $('.hideWrap .hideBtn').index($(this)), isShow=$(this).attr('class'); setCookie('hideBtn'+hideBtn, isShow, 365); return false; }); /* End DocumentReady */ }); </script>
...
2011-11-22 Дата: Вторник, 22.11.2011, 20:46 | Сообщение # 63
Рядовой
Группа: Проверенные
Статус: Offline
Здравствуй Ув. likbezz Можешь помочь сделать чтобы сохранялись куки но только при помощи вот этого скрипта: http://dl.dropbox.com/u/10183681/jquery.cookie.js А то у меня к одному элементу куки привязаны по этому скрипту. а открывающееся блоки по другому. Выходит нужно два скрипта. Хотя знаю что можно все сделать и при помощи одного. Буду очень благодарен за помощь.Добавлено (22.11.2011, 20:46) --------------------------------------------- Здравствуйте Ув. likbezz . Захожу каждый день на форум чтобы глянуть ответ. Может ты напишешь сможешь помочь или нет. Буду очень благодарен. ПОнимаю что может не быть времени или какие нибудь другие причины.
2012-02-02 Дата: Четверг, 02.02.2012, 18:28 | Сообщение # 64
Аццкий кодер
Группа: Администраторы
Статус: Unknown
For bandjuk Q: Quote (bandjuk )
Привет! Спасибо! Поставил вчера скрипт сворачивания блоков, всё работает, но есть проблема, не получается сделать чтобы кнопки сворачивания были в заголовке (титле)
А, понятненько ) Перво-наперво, удаляешь из кода всё то, что прописал до этого ... Включая вот это: Code
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=1.4.2"></script>
Тебе это не нужно, к сайту уже подключёна библиотека JQ, по умолчанию . ... Потом, идёшь в ПУ » Управление дизайном » Таблица стилей CSS Добавляешь туда вот эти строки: Code
table.hideWrap{text-align:left;clear:both;} a.hideBtn{display:block;background:transparent url('http://ssilki.at.ua/Java/minus.gif') no-repeat 10px center;cursor:pointer;outline:none;text-decoration:none;} a.hideBtn.close{background-image:url('http://ssilki.at.ua/Java/plus.gif');} div.hideCont li{list-style:none;}
... Затем, ПУ » Управление дизайном » Глобальные блоки » ... Открываешь Верхний глобальный блок, и добавляешь туда скрипт: Code
<script type="text/javascript" src="http://ssilki.at.ua/Java/_cookie.js"></script>
В любое место. Там же, открываешь Нижний глобальный блок, в самый верх добавляешь скрипт: Quote (JavaScript )
<script type="text/javascript"> $('table.hideWrap a.hideBtn').each(function(i){var cookie=getCookie('hideBtn'+i); if(cookie&&cookie.indexOf('close')!=-1){$(this).toggleClass('close').parents('table.hideWrap').find('div.hideCont').hide();}; }); $('table.hideWrap a.hideBtn').click(function(){ $(this).toggleClass('close').parents('table.hideWrap').find('div.hideCont').slideToggle('normal'); var hideBtn=$('table.hideWrap a.hideBtn').index($(this)),isShow=$(this).attr('class'); setCookie('hideBtn'+hideBtn,isShow,365);return false; }); </script>
... Там же, открываешь глобальный блок с левой колонкой (Первый контейнер) , и делаешь что бы было вот так: Здесь пример для блока категорий: Quote (HTML )
<?if($CATEGORIES$)?> <table border="0" cellpadding="0" cellspacing="0" width="186" class="hideWrap" > <tr><td align="center" height="30" style="background:url('http://ssilki.at.ua/Diz/media/7.gif') #000000;color:#FFFFFF;font-size:10px;"><!-- <bt> --><!--<s5351>--><a class="hideBtn" href="javascript://" title="Показать\Скрыть блок"> <b>Категории раздела</b></a> <!--</s>--><!-- </bt> --></td></tr> <tr><td style="background:url('http://ssilki.at.ua/Diz/media/8.gif');padding:0 5px 0 7px;"> <div class="hideCont"> <!-- <bc> -->$CATEGORIES$<!-- </bc> --></div> </td></tr> <tr><td><img src="http://ssilki.at.ua/Diz/media/9.gif" border="0" style="margin-bottom: 7px"></td></tr> </table> <?endif?>
То бишь: 1. Прописываешь таблице класс == hideWrap 2. Заключаешь заголовок блока в ссылку с классом == hideBtn 3. Заключаешь содержание блока в блок с классом == hideCont ... Такую же операцию проделываешь со всеми блоками к которым нужно применить данный скрипт. В данном случае показано с блоком «Категории раздела». ... И, если всё сделано правильно, увидишь вот такое: ... ☑ Готовая страница, как пример, на всякий ... ...
2012-02-03 Дата: Пятница, 03.02.2012, 18:16 | Сообщение # 65
Генерал-майор
Группа: Пользователи
Статус: Offline
likbezz , Спасибо тебе огромное! Всё злорово получилось! Очень доволен! Ты молодец! Хорошо всё объяснил, да ещё и с примерами! И сайт у тебя хороший! Красиво оформлен и ничего лишнего, грузится быстро! В общем молодец! Жаль не могу тебе плюсик поставить! Добавлено (03.02.2012, 18:16) --------------------------------------------- fflesh, можно тебя ещё по доставать? Как сделать, чтобы в блоках с правой стороны кнопки открыть/закрыть были справа от названия блока?
2012-02-03 Дата: Пятница, 03.02.2012, 18:48 | Сообщение # 66
Аццкий кодер
Группа: Администраторы
Статус: Unknown
bandjuk , Quote (bandjuk )
Как сделать, чтобы в блоках с правой стороны кнопки открыть/закрыть были справа от названия блока?
Добавь дополнительный класс ссылке, только правом блоке, типа: Quote (HTML )
<a class="hideBtn right " href="javascript://" title="Показать\Скрыть блок"><b>Категории раздела</b></a>
И добавь к стилям: Code
a.hideBtn.right{background-position:166px center;}
То бишь, все вместе будет вот так: Quote (CSS )
table.hideWrap{text-align:left;clear:both;} a.hideBtn{display:block;background:transparent url('http://ssilki.at.ua/Java/minus.gif') no-repeat 10px center;cursor:pointer;outline:none;text-decoration:none;} a.hideBtn.right{background-position:166px center;} a.hideBtn.right.close{background-image:url('http://ssilki.at.ua/Java/plus.gif');} div.hideCont li{list-style:none;}
... И будет вот так: Пример (добавлен класс right) ...
2012-02-03 Дата: Пятница, 03.02.2012, 18:50 | Сообщение # 67
Генерал-майор
Группа: Пользователи
Статус: Offline
likbezz , Понял, спасибо! Я сам где то так и думал, но вот сделать не смог!
2012-02-06 Дата: Понедельник, 06.02.2012, 02:48 | Сообщение # 68
Рядовой
Группа: Пользователи
Статус: Offline
Ребят ГОРЮ! Помогите у меня есть скриипт на спойлер вот он Code
<script type="text/javascript"> function sh(num) { obj = document.getElementById("spo_"+num); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; } } </script>
ХТМЛ Code
<a href="javascript:sh('1')">Открыть\закрыть</a> <div id="spo_1" style="display:block"> контент </div>
Мне нужно тоже самое токо с куки.Пож алуйста ребят)
Сообщение отредактировал use - Понедельник, 06.02.2012, 02:49
2012-02-06 Дата: Понедельник, 06.02.2012, 21:37 | Сообщение # 69
Аццкий кодер
Группа: Администраторы
Статус: Unknown
use , Quote (use )
Ребят ГОРЮ! Помогите у меня есть скриипт на спойлер вот он
Используйте даный в этой теме, он не намного отличается от вашего: Code
<div class="hideWrap"> <a class="hideBtn" href="javascript://" title="Показать\Скрыть блок">Показать</a> <div class="hideCont">Здесь располагается содержимое class "hideCont"</div> </div>
..
2012-04-08 Дата: Воскресенье, 08.04.2012, 06:20 | Сообщение # 70
Рядовой
Группа: Зарегистрированные
Статус: Offline
Вечер добрый. А вы не могли бы изменить / модифицировать уже имеющийся js скрипт (добавить в него куки + плавное сворачивание): Code
function showhide(id){ if (document.getElementById){ obj = document.getElementById(id); if (obj.style.display == "none"){ obj.style.display = ""; } else { obj.style.display = "none"; } } }
Пример скрипта скрипт очень простой + поддержка ID, что для меня не мало важно.
2012-04-08 Дата: Воскресенье, 08.04.2012, 06:26 | Сообщение # 71
Аццкий кодер
Группа: Администраторы
Статус: Unknown
rob4ik , Quote (rob4ik )
Вечер добрый. А вы не могли бы изменить / модифицировать уже имеющийся js скрипт (добавить в него куки + плавное сворачивание):
Добрый. Зачем изобретать велосипед? В итоге получится то что предложено постом выше. Если нужно по ID - измените классы на ID. Но, ID - это уникальный элемент а странице, то есть блок должен быть один. Не вижу в этом больших преимуществ, да и маленьких тоже. ... Впрочем, если вопреки здравому смыслу, вам нужна именно ваша функция, могу переделать за дополнительную плату. ...
2012-04-22 Дата: Воскресенье, 22.04.2012, 09:09 | Сообщение # 72
Рядовой
Группа: Зарегистрированные
Статус: Offline
likbezz , спасибо большое! Подскажите, пожалуйста, можно ли сделать так,чтобы если свёрнуто по кукам, то сразу показывалось свёрнутым, а не сворачивалось после загрузки страницы?
2012-08-07 Дата: Вторник, 07.08.2012, 11:29 | Сообщение # 73
Рядовой
Группа: Зарегистрированные
Статус: Offline
Добрый день, likbezz спасибо за скрипт., можете подсказать по какой причине не работает версия с куками на моей странице - http://vipsalondoma.ru/Netshop/nimue/ ? ставил скрипт и в конец страницы, и все равно не работает. вот этот код работал Code
<div class="hideWrap"> <a class="hideBtn" href="javascript://" onclick="$('#hideCont1').slideToggle('normal');$(this).toggleClass('show');return false;">Показать</a> <div id="hideCont1" class="hideCont">Здесь располагается содержимое class "hideCont"</div> </div>
но мне нужно запоминать положение открыто/спрятано для блоков спасибо.
Сообщение отредактировал Burman - Вторник, 07.08.2012, 11:32
2012-08-07 Дата: Вторник, 07.08.2012, 17:27 | Сообщение # 74
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Burman , можете подсказать по какой причине не работает версия с куками на моей странице
Потому что у вас нет скрипта записи/чтения кук. Code
<script type="text/javascript" src="http://likbezz.ru/_theme/_script/_ext/_cookie.js"></script>
Должен находится выше скрипта блоков ..
2012-08-08 Дата: Среда, 08.08.2012, 16:57 | Сообщение # 75
Рядовой
Группа: Зарегистрированные
Статус: Offline
Потому что у вас нет скрипта записи/чтения кук.
он там есть, только я его оказывается неправильно подцепил, исправил, но все равно не заработало работает только версия скрипта Code
: <div class="hideWrap"> <a class="hideBtn" href="javascript://" onclick="$('#hideCont1').slideToggle('normal');return false;">Показать</a> <div style="display:none;" id="hideCont1" class="hideCont">Здесь располагается содержимое class "hideCont"</div> </div>
а вот это уже не работает: Code
<script type="text/javascript"> $(document).ready(function(){ /* Start DocumentReady */ $("div.hideWrap a.hideBtn").click(function(){ $(this).toggleClass('show').siblings('div.hideCont').slideToggle('normal'); return false; }); /* End DocumentReady */ }); </script> и <div class="hideWrap"> <a class="hideBtn" href="javascript://" title="Показать\Скрыть блок">Показать</a> <div class="hideCont">Здесь располагается содержимое class "hideCont"</div> </div>