23.07.13, 17:47
0 комментарий
  Уроки

Эффекты шапки сайта при прокрутке

Вы наверняка уже встречали подобные эффекты, когда шапка сайта реагирует на то, как вы прокручиваете страницу. Например, можно взглянуть на эффект, примененный Филом Ренаудом на сайте Riot Industries, где при клике шапка вращается в трехмерной плоскости, а при прокрутке страницы, увеличивается. Подобный же эффект реализовал Джонни Симпсон в статье, посвященной анимациям, примененным к фиксированной шапке сайта, которые активируются при прокрутке страницы. Мы также создали небольшой blueprint для анимации шапки сайта при прокрутке, чтобы вы могли лучше понять, о чем здесь идет речь.

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

Пожалуйста, учтите: эти эффекты будут работать только в тех браузерах, которые имеют поддержку соответствующих CSS-свойств! Только в современных браузерах!

Демо-страница с эффектами предназначена только для вдохновения, и мы воспользовались техникой, которая включает в себя изменения классов состояния (states) шапки сайта, которые, конечно же, можно изменять по собственному усмотрению в зависимости от того, какой вам понадобится эффект. Важно понимать, что состояния зависят друг от друга, то есть изменение класса А на класс Б может быть уместным (при помощи переходов), а переход от А к классу В может не дать желаемого результата. Так что, порядок эффектов, приведенный на странице, имеет значение.

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

В демо мы использовали великолепный jQuery-плагин Waypoints от Caleb Troughton.

Шапка сайта состоит из нескольких частей для отображения всех эффектов. Здесь имеется оболочка с перспективой – для передней и задней стороны (которая используется для трехмерного вращения):

<header id="ha-header" class="ha-header ha-header-large">
    <div class="ha-header-perspective">
        <div class="ha-header-front">
            <h1><span>Header Effects</span></h1>
            <nav>
                <a>‹ Previous Demo</a>
                <a>Something</a>
                <a>Anything</a>
                <a>Back to the article</a>
            </nav>
        </div>
        <div class="ha-header-bottom">
            <nav>
                <a>Dalliance</a>
                <a>Inglenook</a>
                <a>Lagniappe</a>
                <a>Mellifluous</a>
                <a>Erstwhile</a>
                <a>Wafture</a>
                <a>Serendipity</a>
                <a>Love</a>
            </nav>
        </div>
    </div>
</header>


Мы добавили специальный класс в разделы, который позволяет нам запускать изменения классов:

<section class="ha-waypoint" data-animate-down="ha-header-small" data-animate-up="ha-header-large">
    <!-- ... -->
</section>


Атрибуты данных используются для выставления нужных классов в зависимости от того, в каком направлении производится прокрутка. В нашем демо атрибут данных animate-up содержит класс для предыдущего атрибута данных animate-down.

В качестве примера класса состояния можно выделить “rotate”:

.ha-header-rotate {
    height: 220px;
    top: 50px;
    padding-left: 50px;
    padding-right: 50px;
}
 
.ha-header-rotate .ha-header-front {
    transform: translateY(-100%) rotateX(90deg);
}
 
.ha-header-rotate .ha-header-bottom {
    top: 50%;
    transition: transform 0.5s;
    transform: rotateX(0deg) translateY(-100%);
}


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

При помощи плагина Waypoints, мы просто добавляем соответствующие классы:

var $head = $( '#ha-header' );
$( '.ha-waypoint' ).each( function(i) {
    var $el = $( this ),
        animClassDown = $el.data( 'animateDown' ),
        animClassUp = $el.data( 'animateUp' );
 
    $el.waypoint( function( direction ) {
        if( direction === 'down' && animClassDown ) {
            $head.attr('class', 'ha-header ' + animClassDown);
        }
        else if( direction === 'up' && animClassUp ){
            $head.attr('class', 'ha-header ' + animClassUp);
        }
    }, { offset: '100%' } );
} );


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

ИСХОДНИКИ в архиве.

СКАЧАТЬ

Вес файла
19.84 Kb

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204