Внимание! Данный раздел закрыт и доступен только для чтения в связи с запуском нового проекта uВопросы, на котором Вы можете найти ответ или задать любой интересующий вопрос по системе uCoz. Задавайте вопросы, ищите ответы и помогайте найти ответы другим пользователям системы! Получайте баллы и открывайте новые достижения. Подробнее в блоге...
|
Архив - только для чтения |
Модератор форума: JonMagon |
Сообщество uCoz » Модули uCoz » Форум » Создаем "Раздел-ссылку" (как на главной форума uCoz (раздел "Модули")) |
Создаем "Раздел-ссылку" |
Не знаю на сколько правильно я понял автора этой темы, но он натолкнул меня на то чтоб написать этот скрипт, для кастомизации страниц форума, в частности сделать один из блоков (разделов) на главной странице сворачиваемымКак это реализовано на этом форуме
Ну и конечно всё это будет работать с запоминанием но не в cookie а в localStorage. Работать скрипт будет для конкретного блока, порядковый номер которого вы укажете. Для начала напишем функцию, которая будет выполнять всю работу: Код <script> function contLink(index){ var t = $('.gTable').eq(index-1), tr = t.find('tr:not(:first)'), top = t.find('.gTableTop').append('<i>-</i><div class="lnks" style="display:none"></div>'), lnk = t.find('a.forum').map(function(i,e){return '<a href="'+$(e).attr('href')+'">'+$(e).text()+'</a>'};).get().join(', '), lnks = t.find('.lnks'), i = t.find('i'); if(localStorage.getItem(index)){i.addClass('act');tr.hide();lnks.show();i.text('+')} lnks.html(lnk); i.click(function(){ i.toggleClass('act'); if(i.hasClass('act')){ tr.hide(); lnks.show(); i.text('+'); localStorage.setItem(index, 'act') }else{ tr.show(); lnks.hide(); i.text('-'); localStorage.removeItem(index)} };)//i.click }// contLink </script> Далее вызываем функцию: Код <script> $(function(){ contLink(index) };) </script> Кроме того, можно вызвать функцию несколько раз, для разных блоков. Например: Код <script> $(function(){ contLink(1); // вызываем функцию для первого блока contLink(3); // для третьего блока };) </script> P.S.: Ну и небольшая стилизация для открывашки: Код <style> .gTableTop{ position:relative; padding:0 10px; line-height:3} .gTableTop i{ position:absolute; top:10px; right:10px; display:nline-block; width:20px; font: 700 20px/20px Arial, sans-serif; cursor:pointer; background:#27ae60; border:5px solid #fff; border-radius:15px; text-align:center; } .gTableTop i.act{ background:#208cd1} .lnks{ background:#fafafa; padding:0 10px; margin:10px 0; font-size:14px; font-weight:700; color:#208cd1; border-radius:5px;} .lnks a{ color:#208cd1; text-decoration:underline;} </style> На этом всё, надеюсь скрипт окажется полезным. Прикрепления:
7926389.png
(29.2 Kb)
Можешь забрать этот код и вставить его себе, сам знаешь куда.
Сообщение отредактировал Head-Mad - Воскресенье, 01 Июн 2014, 18:34:30
|
blood14, пожалуйста) Сам когда увидел такую штуку на этом форуме, подумал что было бы не плохо сделать, но тогда представление о js вообще не имел. А недавно попалась просьба на глаза, вспомнил и написал))
Может конечно и не самым изящным способом, буду рад если кто подскажет, как можно упростить скрипт, или укажет на явные ошибки. Можешь забрать этот код и вставить его себе, сам знаешь куда.
|
Selena, бегло по странице пробежался, не нашел, значит где-то в файлах. Не смотрел пока. Но думаю что реализация кардинально отличается. Понятно точно что на форуме это работает на куках, и скорее всего работает немного дольше, потому как нажимая на открывашку каждый раз массив ссылок генерируется и удаляется + идет запись в куки. У меня массив ссылок генерируется один раз и скрывается стилями. И при нажатии на открывашку только записываются или стираются данные в локальное хранилище. Думаю так) Можно немного переделать скрипт и сделать, чтоб эта функция выполнялась для всех блоков. Конечно если это надо.))
Можешь забрать этот код и вставить его себе, сам знаешь куда.
|
| |||
| |||