Как сделать sticky sidebar адаптивным?

melkozaur
На сайте с 06.04.2010
Offline
536
899

На сайте используется js для интересного "залипания" сайдбара, вот этот: https://github.com/yckart/jquery.fixer.js/blob/master/jquery.fixer.js

Демо: http://yckart.github.io/jquery.fixer.js/

Я пилю адаптив и мне надо куда-то как-то убрать этот сайдбар при ширине менее 768px. Но это же js, он там прописывает стили типа position: absolute. Как это убрать?

Или может кто подскажет скрипт с таким же функционалом, но уже запиленный под адаптив?

u3Bepr
На сайте с 03.03.2011
Offline
60
#1

так укажите в стилях для сайдбара при ширине 768 и меньше - display: none; и все равно что он там фиксед или в абсолюте :)


@media all and (max-width: 768px) {
.sidebar{
dispaly:none;
}
}
I2
На сайте с 07.03.2015
Offline
38
#2

А что мешает инициализировать его, только при ширине экрана больше 768 ?:)

Качественная верстка PSD макетов (/ru/forum/974524)
anotherbird
На сайте с 04.03.2016
Offline
41
#3


$.fn.fixer = function(options) {
if ($win.width() > 728){ // если ширина экрана
return this; // больше 728 пикселей, то
} // выходим из плагина без инициализации оного

options = $.extend(options, defaults);
var hori = options.horizontal,
cssPos = hori ? 'left' : 'top'............

должно сработать вот так

melkozaur
На сайте с 06.04.2010
Offline
536
#4

anotherbird,

Что-то перестает вообще работать, если так вставить.

u3Bepr, indenger20, у меня в сайдбаре много информации: меню, списки, короче говоря я хочу это технично убирать в подвал на маленьких экранах.

I2
На сайте с 07.03.2015
Offline
38
#5

melkozaur, Дак суть же в том, что скрипт прилипания не будет работать при такой-то ширине, а сам сайдбар остается в разметке, дальше вы его позиционируйте как угодно.

Или я чего-то не понимаю?

я имею ввиду добавить условие, как-то так


if ($(window).width() > 767) {
$('.side').fixer({
gap: 10
});
}
anotherbird
На сайте с 04.03.2016
Offline
41
#6
melkozaur:
anotherbird,
Что-то перестает вообще работать, если так вставить.

а, он и не должен работать при ширине экрана меньше 728, сорри, тогда так


$.fn.fixer = function(options) {
console.log($win.width()); // покажет в консоли ширину экрана (chrome Ctrl + Shift + J)

if ($win.width() < 728){ // если ширина экрана
return this; // меньше 728 пикселей, то
} // выходим из плагина без инициализации оного
melkozaur
На сайте с 06.04.2010
Offline
536
#7

indenger20, ну да. В принципе это и нужно: чтобы при ширине меньше 768 переставал работать этот скрипт (в частности, переставал присваивать значения fixed и absolute для блока), так вот как это сделать?

S
На сайте с 13.10.2014
Offline
171
#8

Тут варианта два. Распихивать сразу и туда и туда - но при срабатывании @media запроса одно скрывать - другое показывать.

вариант 2 - jQuery

$('.destination').append($('.source').html());

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий