Снежинки на сайт. JavaScript

С наступившим Новым Годом! Счастья и радости Вам в Новом Году!!!
Предлагаю сделать снежинки на сайт.
Делаются снежинки на сайт с помощью JavaScript, JQuery очень легко.
Давайте сделаем такой скрипт, в котором можно легко изменить такие параметры, как размер снежинок, их количество и так далее.
Скрипт будет иметь 4 функции – инициализации снежинок, их движения, начальной функции и таймера.
Считаю, что разбирать код в данном случае не имеет большого смысла (тем более, что он весьма подробно откомментирован. Поэтому приведу сразу код:
  1. //Настраиваемые параметры
  2. //Количество снежинок
  3. var snowCount = 80 ;
  4. //Размер снежинок в пикселах
  5. var snowSizeMaxP = 40 ;
  6. var snowSizeMinP = 20 ;
  7. //прототип снежинки. Можно сделать картинкой. Изменения затронут только функцию Init, а именно переменную tempHtml
  8. var snowPrototype = "*" ;
  9. //Время задержки таймера
  10. var snowTimer = 40 ;
  11. //Эти параметры используются в случае выбора прототипа - символ
  12. var snowColor = ["#AAAACC" , "#DDDDFF" , "#CCCCDD" , "#F3F3F3" , "#F0FFFF" ];
  13. var snowType = ["Segoe UI Light" , "Arial Narrow" , "Times" , "Comic Sans MS" ];
  14. //Позиция снежинки (верхняя левая часть);
  15. var CurPosX = [];
  16. var CurPosY = [];
  17. //Скорость снежинок по оси X
  18. var CurDir = [];
  19. //Размеры экрана браузера (при желании можно получить размеры экрана документа/активной области - по Вашему желанию
  20. var windowWidth = $(window).width();
  21. var windowHeight = $(window).height();
  22. //Инициализация снежинки с индексом
  23. function InitializeSnow(index) {
  24.    //Создаем HTML код снежинки
  25.    var tempHtml = " <span id=''s" +index+"'' style = ''position:absolute; color:" +snowColor[Math.floor(snowColor.length*Math.random())]+";font-family:" +snowType[Math.floor(snowType.length*Math.random())]+"; font-size: " +(Math.floor((snowSizeMaxP - snowSizeMinP)*Math.random())*1 + snowSizeMinP*1 ) + "px;'' >" +snowPrototype+" </span >" ;
  26.    //заносим изменения
  27.    $(''body'').append(tempHtml);
  28.    //инициализируем начальное положение снежинки
  29.    CurPosX[index] = windowWidth* Math.random();
  30.    CurPosY[index] = windowHeight * Math.random();
  31.    //Инициализируем скорость снежинки
  32.    CurDir[index] = Math.floor(5 * Math.random()) - 2 ;
  33.    //Добавляем координаты для нашей снежинки
  34.    $(''#s'' + index).offset({ top: CurPosY[index], left: CurPosX[index] });
  35. }
  36. //Движение снежинки
  37. function MoveSnow(index)
  38. {
  39.    //Изменяем координату X
  40.    CurPosX[index] += CurDir[index];
  41.    //Меняем координату Y
  42.    CurPosY[index] += 1 + 4 * Math.random();
  43.    //Если вышли за пределы - корректируем
  44.    if (CurPosX[index] < 0 ) CurPosX[index] = windowWidth;
  45.    if (CurPosX[index] > windowWidth) CurPosX[index] = 0 ;
  46.    if (CurPosY[index] > windowHeight) CurPosY[index] = 0 ;
  47.    //Заносим изменения
  48.    $(''#s'' + index).offset({ top: CurPosY[index], left: CurPosX[index] });
  49. }
  50. //инициализация кучи снежинокы
  51. $(function () {
  52.    for (var i = 0 ; i < snowCount; i++)
  53.      InitializeSnow(i);
  54.   setInterval(TimerCaller, snowTimer  );
  55. });
  56. //Вызов функции движения для каждой снежинки
  57. function TimerCaller() {
  58.    for (var i = 0 ; i < snowCount; i++)
  59.      MoveSnow(i);
  60. }

This code was highlighted with code.xnim.ru

2013-01-01