Изменение размера шапки при прокрутке

on-scroll-header-effects






Всем привет! В сегодняшней статье хотелось бы поговорить о анимации при прокрутке (скролле) окна браузера. Вы наверняка посещали сайты в которых при прокрутке окна элементы сайта меняют свой внешний вид или меняют свой размер либо меняют свое место расположения, чаще всего данный эффект используется для уменьшения размера шапки сайта при прокрутке.  Я тоже видел такие сайты и понимал что эти эффекты сделаны при помощи JavaScript, а так как я не слишком силен в данном языке программирования я не торопился в этом разобраться, но когда возникла безвыходная ситуация и пришлось все таки углубиться в этот вопрос все оказалось не так уж и страшно. В этой статье я хочу поделиться своим опытом, как при минимальном знание  JavaScript создать эффект уменьшения header (хедера) при прокрутке окна браузера.

Первым делом напишем простенький HTML код для наших экспериментов:



<div class='wrap'>

<div class='header'>
<a href='#'>link</a>
</div>

</div>


оформим его опять таки при помощи не сложного CSS


.wrap {
height:1000px;
background:green;
}
.header {
height:50px;
background:blue;
position:fixed;
}
.header &amp;gt; a {
color: #ccc;
font-size:2em;
}

Ну а теперь изюминка, JavaScript


$(window).scroll(function(){
if ($(window).scrollTop() &amp;gt; 400) {
$('.header').addClass('scroll');
}
else {
$('.header').removeClass('scroll')
}
});

Давайте разберемся подробнее, что мы делаем при помощи указанного выше скрипта: мы добавляем при скролле диву с классом .header дополнительный класс .scroll на который мы можем повесить любые стили CSS , например:


.header .scroll a {
font-size:1em;
}

На этом все, дальше включайте фантазию и у вас все получиться.

В конце приведу код примера полностью:


&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;

&amp;lt;meta charset="utf-8"&amp;gt;

&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;


&amp;lt;style&amp;gt;
.wrap {
height:1000px;
background:green;
}
.header {
height:50px;
background:blue;
position:fixed;
}
.header &amp;gt; a {
color: #ccc;
font-size:2em;
}
.header.scroll a {
font-size:1em;
}
&amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;script&amp;gt;

$(window).scroll(function(){
if ($(window).scrollTop() &amp;gt; 400) {
$('.header').addClass('scroll');
}
else {
$('.header').removeClass('scroll')
}
});

&amp;lt;/script&amp;gt;

&amp;lt;div class='wrap'&amp;gt;
&amp;lt;div class='header'&amp;gt;
&amp;lt;a href='#'&amp;gt;link&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;






Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *