Анимация открытия занавеса с помощью jQuery | Блог Neutron`a - Интернет, музыка, видео, спорт, Twitter, социальные сервисы.
Анимация открытия занавеса с помощью jQuery

Анимация открытия занавеса с помощью jQuery

Опубликовал extezy

Рубрика: CMS

Всем привет. Решил сегодня опубликовать первый урок, такой себе «глобальной» анимации с помощью jQuery. Ведь все не заканчивается только различными эффектами для меню, ссылок и всплывающими окнами. С помощью jQuery довольно легко можно заставить двигаться различные предметы так, как нужно нам, в итоге получив потрясную анимацию не хуже по качеству чем тот-же «флеш». Кстати, я лично считаю данный формат не перспективным (соглашусь с производителями ОС для смартфонов и еще много с кем) и перестал изучать Adobe Flash, взамен начав мучать 3Ds Max и Adobe After Effects. Конечно сравнивать этот софт нет смысла, перед ними стоят абсолютно разные задачи, но радости от последних я получаю намного больше.

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

Главный момент во всей анимации – это графика. В демо используется всего 4 картинки. Все аккуратненько положено в архив исходников. По мимо этого мы еще будем использовать плагин jquery.easing (в связке с jQuery). Опять же, плагин закинут в архив с исходниками.

Подключаем jQuery и плагин jquery.easing:

1
2
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>
<script src="jquery.easing.1.3.js" type="text/javascript"></script>

Вызов элементов jQuery и плагина jquery.easing:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
$(document).ready(function() {
$curtainopen = false;
$(".rope").click(function(){
$(this).blur();
if ($curtainopen == false){ 
$(this).stop().animate({top: '0px' }, {queue:false, duration:350, easing:'easeOutBounce'}); 
$(".leftcurtain").stop().animate({width:'60px'}, 2000 );
$(".rightcurtain").stop().animate({width:'60px'},2000 );
$curtainopen = true;
}else{
$(this).stop().animate({top: '-40px' }, {queue:false, duration:350, easing:'easeOutBounce'}); 
$(".leftcurtain").stop().animate({width:'50%'}, 2000 );
$(".rightcurtain").stop().animate({width:'51%'}, 2000 );
$curtainopen = false;
}
return false;
});
});	
</script>

HTML:

1
2
3
4
5
6
7
8
<body>
<div class="leftcurtain"><img src="images/frontcurtain.jpg"/></div>
<div class="rightcurtain"><img src="images/frontcurtain.jpg"/></div>
<img class="logo" src="images/buildinter.png"/>
<a class="rope" href="#">
<img src="images/rope.png"/>
</a>
</body>

CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
*{
margin:0;
padding:0;
}
body {
text-align: center;
background: #4f3722 url('images/darkcurtain.jpg') repeat-x;
}
img{
border: none;
}
.leftcurtain{
width: 50%;
height: 495px;
top: 0px;
left: 0px;
position: absolute;
z-index: 2;
}
.rightcurtain{
width: 51%;
height: 495px;
right: 0px;
top: 0px;
position: absolute;
z-index: 3;
}
.rightcurtain img, .leftcurtain img{
width: 100%;
height: 100%;
}
.logo{
margin: 0px auto;
margin-top: 150px;
}
.rope{
position: absolute;
top: -40px;
left: 70%;
z-index: 4;
}

Мы создали 2 div`a для наших штор, .leftcurtain и .rightcurtain которые четко зафиксированы в нужных нам сторонах, справа и слева. Разные значения width в 50% и 51% и элемент z-index использованы для того, что бы максимально скрыть стык штор по середине. Поигрались немного со значениями и стыка просто не видно.

А фактически ширина и высота картинок обеих штор установлена на уровне 100%. Что при уменьшении создает эффект, как будто шторы сжимаются. Всё натурально.

Контейнер .logo содержит мою надпись Neutron, ты же можешь засунуть туда всё что угодно.

И последний «див» .rope отвечающий за отображение каната, за который нужно дернуть.

Анимация готова. Я растянул всю сцену на весь экран. Но, ты можешь изменить ширину по своему усмотрению, всунув весь html код в новый контейнер, задав ему предварительно необходимую ширину. Надеюсь тебе понравилось. Оставляй комментарии, что бы я знал, нужны ли еще уроки подобных «глобальных» анимаций. ;)

World’s Largest Skateboard Disaster

Leave a Comment Here's Your Chance to Be Heard!