Название: Компактный вид комментариев на сайте
Автор: Пафнутий
Движок: любой
Описание:
Не так давно Пафнутий поделился с нами небольшим, но возможно полезным, примером кастомизации внешнего вида сайта и спообом добавления ему интерактивности.
А именно: дадим пользователю возможность выбирать представление комментариев (компактный и обычный режимы просмотров).
Для нетерпеливых: наглядная демонстрация.
Для остальных изложу суть.
Для чего это нужно?
Для того, чтобы дать возможность комфортного времяпрепровождения на вашем сайте тем пользователям, которым не очень интересно разглядывать аватарки и читать подписи юзербарами и разноцветными ссылками.
Как сделать?
Очень просто!
Потребуются:
— Плагин jquery.cookie.js (для лёгкой и непринуждённой работы с куками)
— Прямые руки.
Конечно же главное — это js. Поэтому сразу привожу код:
$(".comment").addClass($.cookie("small_comments"));
$(".compact-mode").click(function () {
$.cookie("small_comments", "small");
$(".comment").removeClass("normal").removeClass("small").addClass($.cookie("small_comments"));
return false;
});
$(".normal-mode").click(function () {
//comCook.text="";
$.cookie("small_comments", "normal");
$(".comment").removeClass("normal").removeClass("small").addClass($.cookie("small_comments"));
return false;
});
Где $.cookie(«small_comments») — это имя переменной, в которой будут записываться cookies, что бы при повторном обращении к странице пользователь видел выбранное представление комментариев.
Суть в следующем:
— При загрузке страницы всем блокам с классом comment присваивается класс с именем значения cookies (если пользователь зашёл на сайт первый раз, то ничего не добавится и ничего не поменяется).
— При клике на ссылку с классом compact-mode в куки записывается значение «small» и это же значение присваивается ко всем блокам comment
— При клике на ссылку с классом normal-mode в куки записывается значение «normal» и это же значение присваивается ко всем блокам comment
— Проще некуда.
Осталось подточить немного стили.
Если сократить, то таблица стилей выглядит вот так:
.comment {...}
.comment.small {...}
.inner {...}
.small .inner {...}
Т.е. мы просто добавили в тех местах, где это необходимо модификатор в виде класса small, тем самым изменили внешний вид комментариев.
Вот и всё.