Убираем плавающую шапку или новому дизайну - бой

Этот момент был неизбежен — теперь по умолчанию на пикабу показывается новый дизайн. Старый дизайн на данный момент доступен через old.pikabu.ru, но, возможно, это временно.


Самыми частыми жалобами в новом дизайне были жалобы на вслывающее верхнее меню, зафиксированный блок со ссылками справа, круглые аватарки и другое. Однако, на мой взгляд, у нового дизайна есть и преимущества, например, более лучше читаемый текст (то ли шрифт поменяли, то ли размер, но читается приятней).


Короче, я запилил тему, как сделать новый дизайн удобнее и может быть даже юзабельным. Итак:


1. Скачиваем плагин для хрома, позволяющий встраивать на страницу собственные стили: https://chrome.google.com/webstore/detail/bloat-free-user-st... . Плагин не мой, но я смотрел его код и вредоносов там никаких не обнаружено.


2. Идем на вкладку расширений (chrome://extensions/), находим там «Bloat-free user stylesheets», жмем кнопку Options. Появится окно с полем ввода. В этом окне можно прописывать собственные стили. Формат такой:


## адрес сайта.ru

[тут стили для этого сайта]


## адрес сайта 2.ru

[стили для другого сайта]


и т.п.


Стили пишутся на языке CSS, кому интересно - гуглите, учитесь и пишите собственные стили.


3. В конце поста я написал стили, которые фиксят те или иные фичи. Копируем их целиком либо частично (по своему желанию) в это окно, нажимаем Save. Возле каждого стиля я написал комментарий (он находится внутри символов /* ... /* и не воспринимается браузером) о том, что делает каждый стиль.


4. ...


5. PROFIT!!1


Важно: при доработке сайта разработчиками те или иные стили могут перестать работать или вступать в конфликт с вновь добавленными. Если спустя время что-то на сайте поломается, попробуйте отключить этот плагин и проверить работоспособность еще раз.


Пишите, что еще нужно изменить на сайте, чтобы новый дизайн стал удобным не только с точки зрения админов. Также, кому интересно, могу запилить пост о том, как сделать квадратные аватарки в ВК или телеграме.


Собственно, сами стили:


## pikabu.ru


/* Сделать аватарки квадратными */

.header-right-menu__item,

.avatar,

.avatar img,

.avatar__default,

.avatar__inner,

.avatar__inner > img {

border-radius: 2px !important;

}


/* Убрать увеличение аватарки при наведении */

.avatar:hover img,

.avatar:hover .avatar__default,

.community-avatar:hover img {

transform: none !important;

}


/* Убрать блеклость аватарок когда не наведена мышка */

.user .avatar_op {

opacity: 1 !important;

}


/* Убрать плавающую шапку */

.header_fixed {

position: absolute !important;

}


/* Убрать плавающий блок справа */

.sidebar__inner_fixed {

position: static !important;

}


/* Вернуть серый фон у тегов */

.tags__tag {

background: #ededed !important;

padding: 0 8px !important;

margin: 0 0px 4px 0 !important;

border-radius: 4px !important;

}


/* Увеличить кнопку "Обновить комментарии" */

.comments-navigator__refresh {

padding: 10px 16px !important;

}

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Спасибо! Добавлю кое что от себя люблю чтоб пост сворачивался по нажатию на шапку поста, написал вот такой скриптик:

$('.story__header').on('click', function() {

$(this).siblings('.story__content').slideToggle('fast');

});

З.Ы. Использую расширение для хрома "User JavaScript and CSS" как и один из комментаторов выше.

Иллюстрация к комментарию
раскрыть ветку (7)
1
Автор поста оценил этот комментарий

не фурычит :(

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

Попробуй в настройках расширения включить jquery

раскрыть ветку (5)
Автор поста оценил этот комментарий

пробовал :(

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Код должен быть записан в левом окне ну и включена JQ, ещё заметил один недочет после загрузки постов они не сворачиваются, он применяет только на те которые изначально загрузились. Сейчас попробую исправить данный нюанс

Иллюстрация к комментарию
раскрыть ветку (3)
Автор поста оценил этот комментарий

да все так. ждем...:)

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Вот обновленная версия, вроде всё работает после загрузки дополнительных постов. Код получился больше, но без проверок на события никак не получалось.


// Начало кода вставлять в поле JS


// Получение листа событий (в каждой версии JQ по своему)

function eventsList(element) {

var events = element.data('events');

if (events !== undefined) return events;

events = $.data(element, 'events');

if (events !== undefined) return events;

events = $._data(element, 'events');

if (events !== undefined) return events;

events = $._data(element[0], 'events');

if (events !== undefined) return events;

return false;

}

// Проверка на наличия события для элемента

function checkEvent(element, eventname) {

var events,

ret = false;

events = eventsList(element);

if (events) {

$.each(events, function(evName, e) {

if (evName == eventname) {

ret = true;

}

});

}

return ret;

}

// Код назначения события при наведении на элемент в данном случае заголовок поста

$('html').mousemove(function() {

$('.story__header').mouseenter(function() {

if (!checkEvent($(this), 'click')) {

$('.story__header').on('click', function() {

$(this).siblings('.story__content').slideToggle('fast');

});

}

});

});


// Конец кода


З.Ы. После подгрузки новых постов срабатывает после небольшой задержки, но в целом работает вроде хорошо)

раскрыть ветку (1)
Автор поста оценил этот комментарий

ееееее! работает:)) спасибо чувак! выручил...

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку