С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375

Не могу разобраться в JS, а нужно лишь немного подредактировать падение снега

15.09.2016, 23:59. Показов 891. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется вот такой JS код, который отображает падение снега на сайте, дело в том что мне нужно падение конфетти, а не снега, сами снежинки я переделал, но получается так что конфетти падает только одного цвета и размера, как сделать что бы можно было прикрепить несколько вариантов png файлов.
Плохо разбираюсь в этом, метод тыка не к чему хорошему не привел .
JavaScript
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<div onclick="stopsnow()" id="snow-start">Выкл. снег</div>
<script type="text/javascript"> 
  var snowsrc="http://all-blogspot.com/blog/img/snow.png";
  var no = 20; 
  var log = 0;
  var hidesnowtime = 0;
  var snowdistance = "windowheight";
 
  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
 
    function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }
 
  var dx, xp, yp;    
  var am, stx, sty;  
  var i, doc_width = 800, doc_height = 600; 
 
  if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
  }
 
  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  snowsrc=(snowsrc.indexOf("all-blogspot.com")!= 1)? "http://all-blogspot.com/blog/img/snow.png" : snowsrc
  for (i = 0; i < no; ++ i) {  
    dx[i] = 0;                        
    xp[i] = Math.random()*(doc_width-50); 
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;      
    stx[i] = 0.02 + Math.random()/10;
    sty[i] = 0.7 + Math.random();   
        if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id="dot"+ i +"" style="POSITION: fixed; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;"><img src='"+snowsrc+"' border="0"><\/div>");
      } else {
        document.write("<div id="dot"+ i +"" style="POSITION: fixed; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;"><img src='"+snowsrc+"' border="0"><\/div>");
      }
    }
  }
 
  function snowIE_NS6() {  
    doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
        doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) { 
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";  
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
  }
 
    function hidesnow(){
        if (window.snowtimer) clearTimeout(snowtimer)
        for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
    }
 
if (ie4up||ns6up){
    snowIE_NS6();
        if (hidesnowtime>0)
        setTimeout("hidesnow()", hidesnowtime*1000);
        }
 function stopsnow(){
 if (log==0){
  for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
  no = 0;
  log = 1;
  document.getElementById('snow-start').innerHTML ='Вкл. снег';
  }
  else { log = 0; no = 20; for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="visible";
 document.getElementById('snow-start').innerHTML ='Выкл. снег';
 
  }
 
 }
</script>
<a id="copy" href="http://all-blogspot.com/"></a>
<style>
#snow-start{
background: rgba(27, 25, 25, 0.4);
color: #fff;
display: inline-block;
width: 100px;
text-align: center;
cursor: pointer;
line-height: 25px;
position: fixed;
right: 0px;
top: 0px;
border-radius: 0px 0px 0px 9px;
}
#copy{
color: rgba(20, 16, 16, 0);
font-size: 7px;
position: fixed;
text-decoration: none;
top: 24px;
right: 2px;
}
</style>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2016, 23:59
Ответы с готовыми решениями:

Синонимайзер. Часть вторая. Нужно немного подредактировать
Неделю назад разбирались с этой чудесной вещью тут https://www.cyberforum.ru/php-beginners/thread1114271.html Прибегли мы к этому коду,...

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

помогите с юнитом crt (падение снега)
написал прогу (падение снега) я на Паскале, используя unit crt; работает всё правильно на одном компе, а на другом нет: количество строк не...

7
60 / 60 / 31
Регистрация: 24.05.2016
Сообщений: 202
16.09.2016, 03:06
Fruit, самый примитивный вариант - создать массив с изображениями и брать оттуда рандомную картинку.
1
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
16.09.2016, 10:02  [ТС]
nekosoku, Дак я знаю это, но не знаю как это реализовать ...
0
60 / 60 / 31
Регистрация: 24.05.2016
Сообщений: 202
16.09.2016, 15:58
Fruit, попробуйте этот код:
Кликните здесь для просмотра всего текста
JavaScript
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<div onclick="stopsnow()" id="snow-start">Выкл. снег</div>
<script type="text/javascript"> 
  var snowsrc="http://all-blogspot.com/blog/img/";
  var snowsrcs = ['snow.png','confetti.png', 'rain.png'];
  var no = 20; 
  var log = 0;
  var hidesnowtime = 0;
  var snowdistance = "windowheight";
 
  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
 
    function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }
 
  var dx, xp, yp;    
  var am, stx, sty;  
  var i, doc_width = 800, doc_height = 600; 
 
  if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
  }
 
  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  //snowsrc=(snowsrc.indexOf("all-blogspot.com")!= 1)? "http://all-blogspot.com/blog/img/snow.png" : snowsrc
  for (i = 0; i < no; ++ i) {  
    dx[i] = 0;                        
    xp[i] = Math.random()*(doc_width-50); 
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;      
    stx[i] = 0.02 + Math.random()/10;
    sty[i] = 0.7 + Math.random();   
        if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id="dot"+ i +"" style="POSITION: fixed; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;"><img src='"+snowsrc+snowsrcs[Math.floor(Math.random()*(snowsrcs.length))]"' border="0"><\/div>");
      } else {
        document.write("<div id="dot"+ i +"" style="POSITION: fixed; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;"><img src='"+snowsrc+snowsrcs[Math.floor(Math.random()*(snowsrcs.length))]"' border="0"><\/div>");
      }
    }
  }
 
  function snowIE_NS6() {  
    doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
        doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) { 
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";  
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
  }
 
    function hidesnow(){
        if (window.snowtimer) clearTimeout(snowtimer)
        for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
    }
 
if (ie4up||ns6up){
    snowIE_NS6();
        if (hidesnowtime>0)
        setTimeout("hidesnow()", hidesnowtime*1000);
        }
 function stopsnow(){
 if (log==0){
  for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
  no = 0;
  log = 1;
  document.getElementById('snow-start').innerHTML ='Вкл. снег';
  }
  else { log = 0; no = 20; for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="visible";
 document.getElementById('snow-start').innerHTML ='Выкл. снег';
 
  }
 
 }
</script>
<a id="copy" href="http://all-blogspot.com/"></a>
<style>
#snow-start{
background: rgba(27, 25, 25, 0.4);
color: #fff;
display: inline-block;
width: 100px;
text-align: center;
cursor: pointer;
line-height: 25px;
position: fixed;
right: 0px;
top: 0px;
border-radius: 0px 0px 0px 9px;
}
#copy{
color: rgba(20, 16, 16, 0);
font-size: 7px;
position: fixed;
text-decoration: none;
top: 24px;
right: 2px;
}
</style>
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
16.09.2016, 16:17  [ТС]
nekosoku, Вообще не работает ...

Добавлено через 4 минуты
codepen.io
0
60 / 60 / 31
Регистрация: 24.05.2016
Сообщений: 202
16.09.2016, 16:26
Fruit,
Кликните здесь для просмотра всего текста
JavaScript
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<div onclick="stopsnow()" id="snow-start">Выкл. снег</div>
<script type="text/javascript"> 
  var snowsrc="http://all-blogspot.com/blog/img/";
  var snowsrcs = ['snow.png','confetti.png', 'rain.png'];
  var no = 20; 
  var log = 0;
  var hidesnowtime = 0;
  var snowdistance = "windowheight";
 
  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
 
    function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }
 
  var dx, xp, yp;    
  var am, stx, sty;  
  var i, doc_width = 800, doc_height = 600; 
 
  if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
  }
 
  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  //snowsrc=(snowsrc.indexOf("all-blogspot.com")!= 1)? "http://all-blogspot.com/blog/img/snow.png" : snowsrc
  for (i = 0; i < no; ++ i) {  
    dx[i] = 0;                        
    xp[i] = Math.random()*(doc_width-50); 
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;      
    stx[i] = 0.02 + Math.random()/10;
    sty[i] = 0.7 + Math.random();   
        if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id='dot'"+ i +" style='POSITION: fixed; Z-INDEX: '"+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;'><img src='"+snowsrc+snowsrcs[Math.floor(Math.random()*(snowsrcs.length))]+"' border='0'></div>");
      } else {
        document.write("<div id='dot'"+ i +" style='POSITION: fixed; Z-INDEX: '"+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;'><img src='"+snowsrc+snowsrcs[Math.floor(Math.random()*(snowsrcs.length))]+"' border='0'></div>");
      }
    }
  }
 
  function snowIE_NS6() {  
    doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
        doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) { 
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";  
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
  }
 
    function hidesnow(){
        if (window.snowtimer) clearTimeout(snowtimer)
        for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
    }
 
if (ie4up||ns6up){
    snowIE_NS6();
        if (hidesnowtime>0)
        setTimeout("hidesnow()", hidesnowtime*1000);
        }
 function stopsnow(){
 if (log==0){
  for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden";
  no = 0;
  log = 1;
  document.getElementById('snow-start').innerHTML ='Вкл. снег';
  }
  else { log = 0; no = 20; for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="visible";
 document.getElementById('snow-start').innerHTML ='Выкл. снег';
 
  }
 
 }
</script>
<a id="copy" href="http://all-blogspot.com/"></a>
<style>
#snow-start{
background: rgba(27, 25, 25, 0.4);
color: #fff;
display: inline-block;
width: 100px;
text-align: center;
cursor: pointer;
line-height: 25px;
position: fixed;
right: 0px;
top: 0px;
border-radius: 0px 0px 0px 9px;
}
#copy{
color: rgba(20, 16, 16, 0);
font-size: 7px;
position: fixed;
text-decoration: none;
top: 24px;
right: 2px;
}
</style>
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
16.09.2016, 17:16  [ТС]
nekosoku, Перестали падать ...

Добавлено через 45 минут
снежинки
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
21.09.2016, 14:43  [ТС]
Помогите плиииз

Добавлено через 1 час 5 минут
Можно закрывать тему. Вопрос решён.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2016, 14:43
Помогаю со студенческими работами здесь

Немного нужно разобраться в программе
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; int main() { const char delim = &quot; &quot;; char mas; int c=0; ...

Массив,немного подредактировать надо
Привет всем! В процедуре тут подсчитывается количество четных элементов,а надо,чтоб подсчитывал количество элементов с отриц. значениями....

Есть простенький калькулятор. Требуется немного подредактировать окно ввода
После вывода результата в моем калькуляторе, требуется, чтобы цифры, вводимые пользователем, писались заново, а не в конец ответа. :) То...

Нужно разобраться в программе, Не могу скомпилировать
Скажу честно - заказал программу, для сдачи в вузе. Теперь не могу в ней разобраться. Как её скомпилировать? В чём ошибка? Вот задание:...

не могу разобраться никак. ОЧЕНЬ СРОЧНО НУЖНО!
нужно найти максимальную цифру из текущей даты и затем вывести максимальную @echo off set i=0 set max=%i% pause set...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru