Member 13619773 Ответов: 2

Как поместить этот эффект падающего снега javascript на HTML-сайт?


Похоже, что он влияет на другие элементы страницы и вообще не отображается в Chrome и Microsoft Edge. Ниже приведен код javascript.

Что я уже пробовал:



grphcs=новый массив(6)
Image0=новое изображение();
Image0.src=grphcs[0]="https://www.skinnyski.com/images/flake.gif";
Image1=новое изображение();
Image1.src=grphcs[1]="https://www.skinnyski.com/images/flake.gif"
Image2=новое изображение();
Image2.src=grphcs[2]="https://www.skinnyski.com/images/flake.gif"
Image3=новое изображение();
Image3.src=grphcs[3]="https://www.skinnyski.com/images/flake.gif"
Image4=новое изображение();
Image4.src=grphcs[4]="https://www.skinnyski.com/images/flake.gif"
Image5=новое изображение();
Image5.src=grphcs[5]="https://www.skinnyski.com/images/flake.gif"

Amount=8; //гладкость зависит от размера файла изображения, чем меньше размер файла изображения, тем меньше размер файла изображения.
//больше вы можете использовать!
Ypos=новый массив();
Xpos=новый массив();
Скорость=новый массив();
Шаг=новый массив();
Cstep=новый массив();
ns=(документ.слои)?1:0;
ns6=(document.getElementById&&!document.all)?1:0;
if (ns){
для (i = 0; i < сумма; i++){
ВАР Р=математика.пол(мат.случайный()*grphcs.длина);
rndPic=grphcs[P];
документ.писать("&амп;ЛТ;имя слоя=СН"+я+"' слева=0 ТОП=0&ГТ;&ЛТ;ИМГ СРЦ="+rndPic+"&ГТ;
</слой>");
}
}
еще{
документ.писать (в'<div стиль="позицию:абсолютная;сверху:0px;слева:0px"&ГТ;&ЛТ;див
style="position:relative">');
для (i = 0; i &lt; сумма; i++){
ВАР Р=математика.пол(мат.случайный()*grphcs.длина);
rndPic=grphcs[P];
document.write('<img id="si'+i+'" src="'+rndPic+'"
style="position:absolute;top:0px;left:0px">');
}
документ.писать (в'</дел&ГТ;&ЛТ;/дел&ГТ;');
}
WinHeight=(ns||ns6)?window.innerHeight:window.document.body.clientHeight;
WinWidth=(ns||ns6)?окна.расстояние между-70:окна.документ.тела.значения свойств clientwidth;
для (i=0; i &lt; сумма; i++){
Ypos[i] = Math.round(Math.random()*WinHeight);
Xpos[i] = Math.round(Math.random()*WinWidth);
Speed[i]= Math.random()*5+3;
Cstep[i]=0;
Шаг[i]=Math.random()*0.1+0.05;
}
падение функции(){
var WinHeight=(ns||ns6)?
window.innerHeight:window.document.body.clientHeight;
var WinWidth=(ns||ns6)?окно.внутренняя ширина-
70:стекло.документ.тела.значения свойств clientwidth;
var hscrll=(ns||ns6)?window.pageYOffset:document.body.scrollTop;
var wscrll=(ns||ns6)?window.pageXOffset:document.body.scrollLeft;
для (i=0; i &lt; сумма; i++){
sy = скорость[i]*Math.sin(90*Math.PI/180);
sx = Speed[i]*Math.cos(Cstep[i]);
Ypos[i]+=sy;
Xpos[i]+=sx;
if (Ypos[i] > WinHeight){
Оум[я]=-60;
Xpos[i]=Math.round(Math.random()*WinWidth);
Speed[i]=Math.random()*5+3;
}
if (ns){
документ.слои['sn'+i].слева=Xpos[i];
документ.слои['sn'+i].top=Ypos[i]+hscrll;
}
остальное, если (ns6){
document.getElementById("si"+i).style.left=Math.min(WinWidth,Xpos[i]);
document.getElementById("si"+i).style.top=Ypos[i]+hscrll;
}
еще{
эвал("document.all.si"+i).style.left=Xpos[i];
эвал("document.all.si"+i).style.top=Ypos[i]+hscrll;
}
Cstep[i]+=шаг[i];
}
setTimeout('fall()',40);
}

window.onload=падение;
//-->

2 Ответов

Рейтинг:
2

Jochen Arndt

Это действительно древняя письменность:

ns=(document.layers)?1:0;
ns6=(document.getElementById&&!document.all)?1:0;

Вы должны искать более современный сценарий, обеспечивающий подобный эффект, например Гитхаб - scottschiller/метель: предприятие-класс языка JavaScript эффект снега для интернет, настройка процессоров на пожар по всему миру каждую зиму, начиная с 2003 года.[^].


Рейтинг:
0

Dotnet_Dotnet

Я кое-что изменил .Но изображение не двигалось .Я попробую по другому методу

<html>
<head id="Head1" runat="server">
    <title></title>
   
    
        
        

<script>
 
var grphcs=new Array(6);
var Image0=new Image();
 Image0.src=grphcs[0]="https://www.skinnyski.com/images/flake.gif";
var Image1=new Image();
Image1.src=grphcs[1]="https://www.skinnyski.com/images/flake.gif"
var Image2=new Image();
Image2.src=grphcs[2]="https://www.skinnyski.com/images/flake.gif"
var Image3=new Image();
Image3.src=grphcs[3]="https://www.skinnyski.com/images/flake.gif"
var Image4=new Image();
Image4.src=grphcs[4]="https://www.skinnyski.com/images/flake.gif"
var Image5=new Image();
Image5.src=grphcs[5]="https://www.skinnyski.com/images/flake.gif" 
var i =0;
var Amount=8;
var Ypos=new Array(); 
var Xpos=new Array();
var Speed=new Array();
var Step=new Array();
var Cstep=new Array();
ns=(document.layers)?1:0;
ns6=(document.getElementById&&!document.all)?1:0;
if(ns==0){

for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
var rndPic=grphcs[P];

document.write("<LAYER Id='sn"+i+"' LEFT=50 TOP=50><img src="+rndPic+"></LAYER>");
}
}
else
{
document.write("<div style=position:absolute;top:0px;left:0px><div style=position:relative>");


for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
var rndPic=grphcs[P];
document.write("<img id=si"+i+" src="+rndPic+" style=position:absolute;top:0px;left:0px>");
}
document.write("</div></div>");

}
WinHeight=(ns||ns6)?window.innerHeight:window.document.body.clientHeight;
WinWidth=(ns||ns6)?window.innerWidth-70:window.document.body.clientWidth;
for (i=0; i < Amount; i++){ 
Ypos[i] = Math.round(Math.random()*WinHeight);
Xpos[i] = Math.round(Math.random()*WinWidth);
Speed[i]= Math.random()*5+3;
Cstep[i]=0;
Step[i]=Math.random()*0.1+0.05;
}

function fall(){

var WinHeight=(ns==ns6)?window.innerHeight:window.document.body.clientHeight;
var WinWidth=(ns==ns6)?window.innerWidth-70:window.document.body.clientWidth;
var hscrll=(ns==ns6)?window.pageYOffset:document.body.scrollTop;
var wscrll=(ns==ns6)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i < Amount; i++){

var sy = Speed[i]*Math.sin(90*Math.PI/180);
var sx = Speed[i]*Math.cos(Cstep[i]);

Ypos[i]+=sy;
Xpos[i]+=sx; 

if (Ypos[i] > WinHeight){
Ypos[i]=-60;
Xpos[i]=Math.round(Math.random()*WinWidth);
Speed[i]=Math.random()*5+3;

}


if (ns==0){
var lnm = "sn"+i;

var lar = document.getElementById(lnm);

lar.style.left = 200;

//document.layers['sn'+i].left=Xpos[i];
//document.layers['sn'+i].top=Ypos[i]+hscrll;
}
else if (ns6==0){
document.getElementById("si"+i).style.left=Math.min(WinWidth,Xpos[i]);
document.getElementById("si"+i).style.top=Ypos[i]+hscrll;
}
else{
eval("document.all.si"+i).style.left=Xpos[i];
eval("document.all.si"+i).style.top=Ypos[i]+hscrll;
} 
Cstep[i]+=Step[i];
}

setTimeout('fall()',40);
}
   
</script>

</head>


<body onload="fall();">
    
<div>
</div>
</body>
</html>