+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.01 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Разработка скользящей боковой панели (сайдбара) при помощи jQuery

11.12.2012 13:25
Design FactoRy

Сегодня мы хотим научить вас создавать скользящую боковую панель (сайдбар) при помощи jQuery. Сейчас многие, наверное, задаются вопросом о том, почему бы не сделать это при помощи параметра position:fixed.

Ну что же, вы можете его использовать, но тогда элемент с этим стилем будет оставаться относительным от верхнего края окна просмотра.

Это означает, что если элемент, который вы "фиксируете" расположен по центру страницы, он будет оставаться по центру страницы и при прокрутке страницы. С помощью же этого скрипта, элемент будет оставаться там, где вы хотите, чтобы он был.

Разработка HTML-код

Давайте начнем с разработки простого HTML-кода для нашей боковой панели. В данном случае, мы будем "фиксировать" div с id sticky.

<div id="sticky"></div>
<div id="text"></div>

Разработка CSS

Теперь, когда у нас уже есть основа, мы можем применить некоторые стили, чтобы все выглядело более привлекательно.

body {
    background: #fbfbfb;
}
#container {
    width: 744px;
}
#text {
    color: #333333;
    margin-top: 100px;
    width: 500px;
    height: 10000px;
    float: right;
    font-size: 15px;
    line-height: 23px;
}

Конечно же, мы также будем оформлять наш фиксированный элемент.

#sticky {
	margin-top: 50px;
	margin-left: 50px;
	padding:5px;
	background: rgba(255,255,255,1);
	height: 120px;
	width: 305px;
		-webkit-border-radius: 7px;
		-moz-border-radius: 7px;
		border-radius: 7px;
}

Разработка jQuery

Отлично, теперь мы можем перейти к jQuery, в чем и заключается вся работа нашего элемента. Перед тем как начать, давайте мы расскажем вам о логическом процессе, который стоит за всем этим. У нас есть обычный элемент, помещенный на страницу. Затем, когда страница достаточно прокрутилась, и элемент, над которым мы работаем, уже касается верхнего края окна просмотра, он "прилипает" к нему.

Что это означает? Мы задали элементу параметр position:fixed, после чего задали ему поля, которые переместят его в то же место, где он был до фиксирования? Звучит сложно? Не беспокойтесь, сам код довольно простой.

Сначала мы объявляем некоторые переменные.

var obj = $('#sticky');
var offset = obj.offset();
var topOffset = offset.top;
var leftOffset = offset.left;
var marginTop = obj.css("marginTop");
var marginLeft = obj.css("marginLeft");

Нам нужно, чтобы эти значения могли корректно расположить элемент, когда он уже будет "прилеплен".

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

$(window).scroll(function() {
var scrollTop = $(window).scrollTop();

});

Как видно, синтаксис довольно прост. Также обратите внимание на переменную scrollTop. Эта переменная будет обновляться каждый раз, когда будет прокручиваться страница. Она удерживает значение того, насколько сильно пользователь прокрутил страницу. Особенно, насколько далеко верхний край окна просмотра от верха страницы.

Сейчас нам понадобятся 2 выражения "if". Одно из них будет выполняться, если пользователь докрутил окно до фиксированного элемента. А второе выражение поначалу может показаться дополнительным.

Тем не менее, оно очень важно. Представьте, что пользователь прокрутил страницу, и фиксированный элемент "прилип". Затем представьте, что произойдет, если пользователь вновь прокрутит страницу вверх?

Элемент по-прежнему останется прилепленным, и не вернется обратно на предыдущее положение. Для того чтобы исправить это, нам нужна будет функция, которая будет проверять, находится ли фиксированный элемент выше исходной позиции. Если да, то функция будет применять исходные стили. Поэтому нам нужно столько переменных.

Представляем вам выражения "if":

	if (scrollTop >= topOffset){

		obj.css({
			marginTop: 0,
			marginLeft: leftOffset,
			position: 'fixed',
		});
	}

	if (scrollTop < topOffset){

		obj.css({
			marginTop: marginTop,
			marginLeft: marginLeft,
			position: 'relative',
		});
	}

Эти выражения представляют собой всю начинку кода - они и отвечают за работоспособность. Мы получаем следующий результат:

var obj = $('#sticky');
var offset = obj.offset();
var topOffset = offset.top;
var leftOffset = offset.left;
var marginTop = obj.css("marginTop");
var marginLeft = obj.css("marginLeft");

$(window).scroll(function() {
var scrollTop = $(window).scrollTop();

	if (scrollTop >= topOffset){

		obj.css({
			marginTop: 0,
			marginLeft: leftOffset,
			position: 'fixed',
		});
	}

	if (scrollTop < topOffset){

		obj.css({
			marginTop: marginTop,
			marginLeft: marginLeft,
			position: 'relative',
		});
	}
});

Итак, мы подошли к концу нашего руководства. Надеемся, оно вам понравилось! Также не забудьте включить в документ библиотеку jQuery, и не забудьте обернуть всё в $(document).ready(function(){}.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года