Сейчас: 04:38:50   24-го апреля 2024 г.
UsefulScript.ruСкриптыГрафикаСкрипт снегопада
59
236

Скрипт снегопада (падающих снежинок)

Зимой на некоторых сайтах Вы наверняка наблюдали идущий снег. Ранее мы уже рассматривали простой Скрипт падающих снежинок.


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


Вы уже наверно обратили внимание, что на данной страничке установлен описываемый нами скрипт снегопада.


Для того чтобы сделать на своем сайте подобный снегопад, скопируйте к себе на сайт следующий JavaScript код:

JavaScript код:
<script type="text/javascript">
var 
count 50;
var 
flake = new Array("flake1.gif""flake2.gif""flake3.gif",
    
"flake4.gif""flake5.gif");
var 
= new Array();
var 
= new Array();
var 
Speed = new Array();
var 
Step = new Array();
var 
Xstep = new Array();
var 
Height document.body.scrollHeight;
var 
Width document.body.scrollWidth;

for (
i=0i<counti++) {
    
Pic="image/snow/" flake[Math.floor(Math.random()*flake.length)];
    
document.write('<img id="snow'+i+'" src="'+Pic+'" style="position:absolute;">');
}

for (
i=0i<counti++){
    
Y[i] = Math.round(Math.random()*Height);
    
X[i] = Math.round(Math.random()*Width) - 90;
    
Speed[i] = Math.random()*2;
    
Xstep[i] = 0;
    
Step[i] = Math.random()*0.1 0.05;
}

function 
fall(){
for (
i=0i<counti++) {
 
sx Speed[i]*Math.cos(Xstep[i]);

 if (
X[i]+sx>Width-89X[i] -= sx;

 
X[i] += sx;
 
Y[i] += Speed[i]*Math.sin(Math.PI/2);

 if (
Y[i]>Height-60) {
    
Y[i] = 0;
    
X[i] = Math.random()*Width 89;
    
Step[i] = Math.random()*0.1 0.05;
    
Speed[i] = Math.random()*2;
 }

 
document.getElementById("snow" i).style.left X[i] + "px";
 
document.getElementById("snow" i).style.top Y[i] + "px";
 
Xstep[i] += Step[i];
}
setTimeout("fall()"50);
}
fall();
</script>

Скачать GIF-изображения снежинок можно с нашего сайта по ссылке - Снежинки.


Не забудьте в строчке скрипта Pic="image/snow/"... заменить "image/snow/" на путь к папке с изображениями снежинок на Вашем сайте. Теперь скрипт должен заработать и будет радовать ваших посетителей в зимнее время.

Дата создания: 18:54:04 04.10.2012 г.
Дата обновления: 14:33:19 05.10.2012 г.
Посещений: 22195 раз(а).

Комментарии посетителей (12 шт.):
Алексей Инкогнито
0
# 449
(23:01:40  10.12.2012 г.)

Здравствуйте! Скажите, пожалуйста, а можно как-нибудь пореже интенсивность выпадения снежинок сделать?
Ответить

Administrator
1
# 450
(23:19:04  10.12.2012 г.)

Пореже это поменьше снежинок? Если да, то тогда уменьшите общее количество снежинок на страничке при помощи переменной var count = 50;
Еще можно уменьшить скорость падения снежинок путем увеличения задержки в setTimeout("fall()", 50);
Ответить

Алексей Инкогнито
1
# 451
(23:32:06  10.12.2012 г.)

Спасибочки, как обычно методом тыка уже настроил строку var count = 5; - а вот если увеличивать тайминг setTimeout("fall()", 50); то снежинки начинают как бы тормозить... Ну и так хорошо! С Вашим скриптом "Плавающего фона" вообще картинка получилась! Спасибо Вам огромное, как всегда нашёл у Вас самые нужные и полезные для своего портала скрипты!
Ответить

Марина
4
# 456
(11:06:25  13.12.2012 г.)

Спасибо за скрипт, очень красиво смотрится на сайте. Но почему-то он не отображается в Mozilla Firefox.
Ответить

Administrator
0
# 457
(21:57:22  13.12.2012 г.)

Странно. Должно все работать. А на данной страничке тоже не работает?
Ответить

Sergey1917
0
# 754
(15:11:18  06.04.2013 г.)

Тема мне понравилась. Вот бы ее еще развить, и получится скрипт со спецэффектами к праздникам. Как сделать, чтобы снежинки не падали, а вверх поднимались? Тогда можно будет их заменить на шарики - вот и майский праздник. И на 9 мая можно придумать рисунки. На 8 марта сыпятся цветы. На день влюбленных - сердечки. Ну а сами снежинки - на новый год (даже на два новых года). Вот какая у скрипта перспектива интересная.
Ответить

Administrator
1
# 756
(17:14:32  06.04.2013 г.)

Для того, чтобы снежинки не падали, а поднимались вверх замените Y[i]+=sy; на Y[i]-=sy;
и if (Y[i]>Height-60) { Y[i]=0; на if (Y[i]<0) { Y[i]=Height-60;
Ответить

Тимофей
0
# 1272
(17:26:52  08.11.2013 г.)

Спасибо, классный скрипт, вот только у меня страница прокручивается, а скрипт показывается только в первом окне (не рассчитан на прокрутку). Как сделать, чтоб при прокрутке снежинки тоже летали?
Ответить

Administrator
0
# 1274
(18:44:13  08.11.2013 г.)

Воспользуйтесь лучше обновленным скриптом на jQuery - Падающие снежинки на jQuery.
Ответить

Екатерина
0
# 1363
(07:52:36  23.12.2013 г.)

Куда нужно вставить скрипт на сайте, чтобы отображался на каждой странице?
Ответить

Administrator
0
# 1364
(19:34:35  23.12.2013 г.)

Все зависит от того, на каком движке построен Ваш сайт. Попробуйте добавить в тот же файл, в который Вы установили счетчики.
Ответить

KU-DEV
0
# 4587
(14:10:27  25.12.2019 г.)

Я добавил еще разный размер снежинок.
Вставить сюда width='"+ randomInteger(3, 15) +"'

document.write("<img width='"+ randomInteger(3, 15) +"' id=\"sn"+ i +"\" style=\"position: absolute; " +
"z-index: 50; top: -50px; left: -50px;\" src='" + imgsrc + "'>");

и сама функция
function randomInteger(min, max) {
// получить случайное число от (min-0.5) до (max+0.5)
let rand = min - 0.5 + Math.random() * (max - min + 1);
return Math.round(rand);
}
Ответить

Закрыть
Ваше имя:
720 + 8 =
Добавить комментарий:
Ваше имя:
720 + 8 =

Перед публикацией все комментарии проходят обязательную модерацию!

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

Как Вы узнали о нашем сайте?