Новый год - прекрасный праздник! Самое время украсить свой сайт новогодней атрибутикой.
И так преступим. Для начала нам нужны сами снежинки, так что качаем/рисуем изображения снежинок с прозрачным фоном и добавляем на сайт.
Также добавляем css оформление:
Теперь приступаем к коду, собственно:
Спасибо за внимание.
1 | < img class = "snow" src = "sneg.gif" /> |
1 2 3 4 5 6 | img.snow{ width : 25px ; height : 25px ; z-index : 10 ; position : absolute ; } |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /* Используем jQuery процедуру - .ready(function) */ $(document).ready( function () { for ( var i=0; i<10; i++) { /* Создадим 10 снежинок */ $(document.body).append( "<img class='snow' src='sneg.gif' />" ); } $( ".snow" ).each( function () { $( this ).css({ /* Зададим снежинкам случайную позицию на сайте */ "top" : generateTop( this ) + "px" , "left" : generateLeft( this ) + "px" }); }); /* Создаем таймер, который будет вызывать функцию moveSnow каждые 10 миллисекунд т.е. 100 раз в секунду */ setInterval(moveSnow, 10); }); function moveSnow() { $( ".snow" ).each( function () { /*Все снежинки будем двигать на 4 пикселя вниз, и по синусоиде влево и вправо*/ var thisTop = parseInt($( this ).css( "top" )) + 2 + Math.random() * 2; var thisLeft = parseInt($( this ).css( "left" )) + 5 * Math.sin(thisTop / 100); /* Применяем высчитанную новую позицию снежинке */ $( this ).css({ "top" : thisTop+ "px" , "left" : thisLeft+ "px" }); /* Проверяем на вылет за пределы документа по высоте */ if (thisTop > $(document).height() - $( this ).height()) { $( this ).css( "top" , -$( this ).height() + "px" ); } /* Проверяем на вылет за пределы документа по ширине */ if ((thisLeft > $(document).width() - $( this ).width() - 10) || (thisLeft < 0)) { $( this ).css( "left" , generateLeft( this ) + "px" ); } }); } function generateLeft(snow) { return Math.random() * ($(document).width() - $(snow).width()); } function generateTop(snow) { return Math.random() * ($(document).height() - $(snow).height() ); } |