Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Падающий снег (https://javascript.ru/forum/css-html/12789-padayushhijj-sneg.html)

flame 03.11.2010 10:57

Падающий снег
 
Здравствуйте!
При загрузке скрипта снежинки появляются по высоте окна браузера, потом летят до конца страницы.
Хочу переделать, чтобы при загрузке страницы они были сразу распределены по всей высоте тега body
или по всему окну браузера пользователя (и после прокрутки станицы вниз).
Вообщем чтобы всегда в окне браузера были снежинки.
Помогите кто чем может:help:
//Configure below to change URL path to the snow image
var snowsrc="snow.gif";
// Configure below to change number of snow to render
var no = 10;
// Configure whether snow should disappear after x seconds (0=never):
var hidesnowtime = 0;
// Configure how much snow should drop down before fading ("windowheight" or "pageheight")
var snowdistance = "pageheight";

var ie4up = (document.all) ? 1 : 0;
var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

var iecompattest = (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;

var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i, doc_width = 800, doc_height = 100; 

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();
dots = new Array();

for (i = 0; i < no; ++ i) {  
  dx[i] = 0;                        // set coordinate variables
  xp[i] = Math.random()*(doc_width-50);  // set position variables
  yp[i] = Math.random()*doc_height;
  am[i] = Math.random()*20;         // set amplitude variables
  stx[i] = 0.02 + Math.random() * 0.10; // set step variables
  sty[i] = 0.7 + Math.random();     // set step variables
	if (ie4up||ns6up) {
    document.write("<img id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: -100px; LEFT: -100px;\" src='"+snowsrc+"' border=\"0\">");
  }
	dots[i] = document.getElementById("dot"+i);
}

function snowIE_NS6() {// IE and NS6 main animation function
  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.04 + Math.random() * 0.10;
      sty[i] = 2 + Math.random();
    }
    dx[i] += stx[i];
    dots[i].style.top = yp[i]+"px";
    dots[i].style.left = xp[i] + am[i]*Math.sin(dx[i])+"px";  
  }
  snowtimer=setTimeout("snowIE_NS6()", 50);
}

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)
}

Kolyaj 03.11.2010 11:10

Началось. Новогоднее слабоумие со снежинками на сайтах началось.

flame,
идёте на любой сайт по JavaScript, мотаете на декабрьские темы любого года и выбираете себе скрипт на любой вкус.

Цитата:

Сообщение от flame
snowIE_NS6

Если видите в скрипте буквосочетание NS не надо брать этот скрипт, он стар и требует покоя.

Gozar 03.11.2010 11:25

удалено.


Часовой пояс GMT +3, время: 20:33.