Время чтения: 1 мин. 27 июня 2015 в 18:23 Блог веб-разработчика
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Как сделать фиксированный виджет без плагина

Предположим нам нужно сделать в сайдбаре (или любой другой области ) последний виджет (почему последний узнаете в конце статьи) (или любой элемент ) фиксированным. То есть при прокрутке он должен опускаться и оставаться видимым.

Как сделать фиксированный виджет

Так это выглядит схематически

Шаг 1. Вставляем скрипт в тело страницы:

[php]

var node = document.getElementById(‘side’),
nodeOffs = node.offsetTop,
parent = node;

while(parent = parent.offsetParent)
if(parent.offsetTop)
nodeOffs += parent.offsetTop;

window.addEventListener(‘scroll’, function(event){
var scrollPos = document.body.scrollTop;

if(scrollPos > nodeOffs){

if(scrollPos < (document.body.scrollHeight — node.clientHeight — nodeOffs))
node.style.top = (scrollPos — nodeOffs) + ‘px’;

}else{
node.style.top = ‘0px’;
}
});

[/php]

Шаг 2. Далее обязательно добавляем стили:

[php]

#side{
position: relative; /* <- Обязательный параметр*/
}

[/php]

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

Похожие статьи

Заказать обратный звонок

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

[contact-form-7 404 "Not Found"]
[contact-form-7 404 "Not Found"]
Начать сотрудничество
Заполните поля ниже. Я лично перезвоню Вам в течении 15 минут для обсуждения деталей.

Введите ваше имя *

Введите контактный телефон *

Введите контактный Email для отправки точной стоимости

или позвоните мне по телефону
+7-499-70-300-44
Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

[contact-form-7 404 "Not Found"]
Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Заказать услугу
Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Запись на бесплатный урок
Введите ваше имя, телефон и skype логин.
Я свяжусь с Вами для уточнения времени прохождения урока.

Введите ваше имя *

Введите контактный телефон *

Введите контактный E-mail *

Выберите программу

Промокод

Задать свой вопрос
Напишите свой вопрос. Я прочитаю его, и дам ответ в течении 15 минут.

Введите ваше имя *

Введите контактный email *

Сообщение