Падающий снег на jQuery или html шаблон Новогодней поздравительной открытки
Доброе время суток и с наступающим. В преддверии Нового года я хочу с вами поделить очень легким, красивым и неприхотливым плагином падающего снега. Этот скрипт действительно очень легкий и спокойно помещается в html файле, не затрудняя работы с самим html кодом сайта. Правда его можно и вынести в отдельный файл. Но для удобства я сделал все в одном файле.
Тут мало что можно сказать, лучше посмотреть демонстрацию этого падающего снега. Вдобавок там очень красивый фон и надпись "С Новым годом", написанная красивым шрифтом "Lobster" от Google. Вы с легкостью этот файл можете превратить в интернет открытку с поздравлением.
Подключение скрипта падающих снежинок на готовый сайт
1. Подключаем библиотеку jQuery
Подключается она так: между тегами <head> и </head> вставляете следующий код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
2. Подключаем стили
Вставьте css-код в свой css файл (обычно это style.css):
#canvas { border: 1px solid black; position: absolute; z-index: 10000; } #flake { color: #fff; position: absolute; font-size: 25px; top: -50px; }
3. Создаем файл snow.js
Создадим файл snow.js и вставляем туда следующий javascript-код:
<script> var t = setInterval( function(){ var documentHeight = $(document).height(); var startPositionLeft = Math.random() * $(document).width() - 100; var startOpacity = 0.5 + Math.random(); var sizeFlake = 10 + Math.random() * 20; var endPositionTop = documentHeight - 40; var endPositionLeft = startPositionLeft - 100 + Math.random() * 200; var durationFall = documentHeight * 10 + Math.random() * 5000; $('#flake') .clone() .appendTo('body') .css( { left: startPositionLeft, opacity: startOpacity, 'font-size': sizeFlake } ) .animate( { top: endPositionTop, left: endPositionLeft, opacity: 0.2 }, durationFall, 'linear', function() { $(this).remove() } ); }, 500); var snow = {}; var snowflex = {}; snowflex.create = function(){ var flex = document.createElement('div'); flex.innerHTML = "❄"; flex.style.fontSize = 10 + Math.random() * 20 + 'px'; flex.style.top = - 50 + Math.random() * 20 + 'px'; flex.style.left = Math.random() * 1500 + 'px'; flex.style.position = "absolute"; flex.style.color = "#F3F3F3"; flex.style.opacity = Math.random(); document.getElementsByTagName('body')[0].appendChild(flex); return flex; }; snow.snowflex = function(){ var flex = snowflex.create(); var x = -1 + Math.random() * 2; var t = setInterval( function(){ flex.style.top = parseInt(flex.style.top) + 5 + 'px'; flex.style.left = parseInt(flex.style.left) + x + 'px'; if (parseInt(flex.style.top) > 1500) { clearInterval(t); document.getElementsByTagName('body')[0].removeChild(flex); } }, 45 + Math.random() * 20); }; snow.storm = function(){ var t = setInterval( function(){ snow.snowflex(); }, 500); }; //snow.storm(); var fog = {}; fog.draw = function(ctx, x, y){ ctx.fillStyle = "rgba( 255, 255, 255, " + Math.random() + " )"; ctx.arc( x, y, 10,0,Math.PI*2,true); ctx.closePath(); ctx.fill(); }; fog.start = function(){ var ctx = document.getElementById('canvas').getContext("2d"); var x = 0; var y = 0; var t = setInterval( function(){ x = 300 + 300*Math.sin(x); y = 300 + 300* -Math.cos(x); x += 2; fog.draw(ctx, x, y); }, 100); }; //fog.start(); </script>
Подключаем js-файл в <head>:
<script type="text/javascript" src="snow.js"></script>
4. Вставляем html код
Ну и осталось самое главное - вставить html код падающего снега в любое места в <body>:
<div id = "flake">❄</div>
Если вы все сделали правильно, то у Вас на сайте начнет падать снег.
Подключение фоновой картинки, большого заголовка и падающих снежинок
Этот вариант отличается тем, что у него есть фоновое изображение и большой заголовок «С Новым годом». Подключить этот вариант скрипта падающего снега на сайт достаточно просто. Нужно:
1. Скачиваем архив и его разархивировируем
2. Подключаем библиотеку jQuery
Обязательно подключить библиотеку jQuery (не обязательно, если у Вас уже подключена эта библиотека). Подключается она так: между тегами <head> и </head> вставляете следующий код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
3. Подключаем шрифт "Lobster"
Аналогично подключению бибилиотеки jQuery, подключаем шрифт для нашей надписи "С Новым годом":
<link href='http://fonts.googleapis.com/css?family=Lobster&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
Естественно, если Вам не нужна эта надпись и шрифт, вы можете его не подключать, но тогда и в css уберите у атрибута H1 "font-family: 'Lobster', cursive;", или замените его на свой шрифт
4. Подключаем стили
Вариант А. Вставьте css-код в свой css файл. Вот код:
img.bg { /* Set rules to fill background */ min-height: 100%; min-width: 1024px; /* Set up proportionate scaling */ width: 100%; height: auto; /* Set up positioning */ position: fixed; top: 0; left: 0; } h1 { font-family: 'Lobster', cursive; color: #FFF; font-size: 90px; text-align: center; line-height: 95px; font-weight: normal; margin-top: 300px; text-shadow: 5px 5px 5px #000; } @media screen and (max-width: 1024px) { /* Specific to this particular image */ img.bg { left: 50%; margin-left: -512px; /* 50% */ } } html, body { font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; padding: 0; margin: 0; color: #333; } .bar { background-color: #111; color: #f0f0f0; box-shadow: 0px 0px 2px #333; line-height: 25px; padding: 0px 20px; opacity: 0.7; } .bar:hover { opacity: 1; } .bar a { color: #DDD; } .bar a:hover { color: #FFFFFF; } a { color: #FFFFFF; text-decoration: none; } a:hover { color: #CCC; } #canvas { border: 1px solid black; position: absolute; z-index: 10000; } #flake { color: #fff; position: absolute; font-size: 25px; top: -50px; } #page { position: relative; }
Вариант B. Также можно создать отдельный файл, например snow.css и вставить этот же код туда, правда его надо будет подключить в head следующим образом:
<link rel="stylesheet" href="snow.css" type="text/css" media="screen">
5. Подключаем скрипт падающего снега
Вариант А. Для этого нам нужно вставить в самый низ сайта (до закрытия </body>) следующий javascript-код:
<script> var t = setInterval( function(){ var documentHeight = $(document).height(); var startPositionLeft = Math.random() * $(document).width() - 100; var startOpacity = 0.5 + Math.random(); var sizeFlake = 10 + Math.random() * 20; var endPositionTop = documentHeight - 40; var endPositionLeft = startPositionLeft - 100 + Math.random() * 200; var durationFall = documentHeight * 10 + Math.random() * 5000; $('#flake') .clone() .appendTo('body') .css( { left: startPositionLeft, opacity: startOpacity, 'font-size': sizeFlake } ) .animate( { top: endPositionTop, left: endPositionLeft, opacity: 0.2 }, durationFall, 'linear', function() { $(this).remove() } ); }, 500); var snow = {}; var snowflex = {}; snowflex.create = function(){ var flex = document.createElement('div'); flex.innerHTML = "❄"; flex.style.fontSize = 10 + Math.random() * 20 + 'px'; flex.style.top = - 50 + Math.random() * 20 + 'px'; flex.style.left = Math.random() * 1500 + 'px'; flex.style.position = "absolute"; flex.style.color = "#F3F3F3"; flex.style.opacity = Math.random(); document.getElementsByTagName('body')[0].appendChild(flex); return flex; }; snow.snowflex = function(){ var flex = snowflex.create(); var x = -1 + Math.random() * 2; var t = setInterval( function(){ flex.style.top = parseInt(flex.style.top) + 5 + 'px'; flex.style.left = parseInt(flex.style.left) + x + 'px'; if (parseInt(flex.style.top) > 1500) { clearInterval(t); document.getElementsByTagName('body')[0].removeChild(flex); } }, 45 + Math.random() * 20); }; snow.storm = function(){ var t = setInterval( function(){ snow.snowflex(); }, 500); }; //snow.storm(); var fog = {}; fog.draw = function(ctx, x, y){ ctx.fillStyle = "rgba( 255, 255, 255, " + Math.random() + " )"; ctx.arc( x, y, 10,0,Math.PI*2,true); ctx.closePath(); ctx.fill(); }; fog.start = function(){ var ctx = document.getElementById('canvas').getContext("2d"); var x = 0; var y = 0; var t = setInterval( function(){ x = 300 + 300*Math.sin(x); y = 300 + 300* -Math.cos(x); x += 2; fog.draw(ctx, x, y); }, 100); }; //fog.start(); </script>
Вариант B. Также как и с css-кодом, javascript можно вынести в отдельный файл и также его назвать snow.js и подключить его в head:
<script type="text/javascript" src="snow.js"></script>
6. Заливаем изображение фона
Залить картинку bg.jpg из архива в корень Вашего сайта
7. Вставляем html код
Ну и осталось самое главное - вставить html код падающего снега:
<img src="bg.jpg" class="bg"> <div id="page"> <h1>С Новым годом!</h1> </div> <div id = "flake">❄</div>
Скрипт падающего снега успешно подключен. Обязательно посмотрите его в работе. Всего доброго!
Комментарии ()