Техническая поддержка SpyBB

Объявление

Ответы на часто задаваемые вопросы  |  FAQ по администрированию форума  |  FAQ по дизайну форума в CSS  |  Абсолютный помощник по дизайну  |  Навигатор по форуму

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

● 24 марта 2012г. - Закрепление первого сообщения
● 23 марта 2012г.: Изменения в форме ответа - Добавлен стандартный спойлер. Доработан функционал кнопок

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Техническая поддержка SpyBB » Корзина » Новогодний скрипт


Новогодний скрипт

Сообщений 1 страница 6 из 6

1

Новый год на носу. Когда-то я видел скрипт для того, что бы на сайте шел снег. Но больше не помню где. Не подскажете где его найти и куда вставить?
Буду очень признателен.

0

2

Семиэль
1. Прежде чем спрашивать - умейте пользоваться поиском!

Код:
<SCRIPT language=JavaScript1.2>
if  ((document.getElementById) && window.addEventListener || window.attachEvent)

{(function()

{

var num = 30;   // Количество снежинок
var timer = 30; // Скорость падения

var y = [];
var x = [];
var fall = [];
var theFlakes = [];
var sfs = [];
var step = [];
var currStep = [];
var h,w,r;
var d = document;
var pix = "px";
var domWw = (typeof window.innerWidth == "number");
var domSy = (typeof window.pageYOffset == "number");
var idx = d.getElementsByTagName('div').length; 

for (i = 0; i < num; i++) {

sfs[i] = Math.round(1 + Math.random() * 1);
document.write('<div id="flake'+(idx+i)+'" style="position:absolute;top:0px;left:0px;width:'+sfs[i]+'px;height:'+sfs[i]+'px;background-color:#ffffff;font-size:'+sfs[i]+'px"><\/div>');
currStep[i] = 0;
fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05; 

}
if (domWw) r = window;
  else { 
   if (d.documentElement && typeof d.documentElement.clientWidth == "number" && 
  d.documentElement.clientWidth != 0) r = d.documentElement;
    else { 
     if (d.body && typeof d.body.clientWidth == "number")  r = d.body;
   }
  }

function winsize() {

var oh,sy,ow,sx,rh,rw;
if (domWw) {
  if (d.documentElement && d.defaultView && typeof d.defaultView.scrollMaxY == "number") {
   oh = d.documentElement.offsetHeight;
   sy = d.defaultView.scrollMaxY;
   ow = d.documentElement.offsetWidth;
   sx = d.defaultView.scrollMaxX;
   rh = oh-sy;
   rw = ow-sx;
}
  else {
   rh = r.innerHeight;
   rw = r.innerWidth;
  }
h = rh - 2;  
w = rw - 2; 

} 
else{ 

h = r.clientHeight - 2; 
w = r.clientWidth - 2; 
}
}

function scrl(yx) { 

var y,x;
if (domSy) {
  y = r.pageYOffset;
  x = r.pageXOffset; }

else { 

y = r.scrollTop;
  x = r.scrollLeft;

}

return (yx == 0)?y:x;

}

function snow() {

var dy,dx;
for (i = 0; i < num; i++) { 

  dy = fall[i];
  dx = fall[i] * Math.cos(currStep[i]);
  y[i]+=dy;
x[i]+=dx; 
  if (x[i] >= w || y[i] >= h) {

   y[i] = -10;
   x[i] = Math.round(Math.random() * w);
   fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2); 
   step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
}

theFlakes[i].top = y[i] + scrl(0) + pix;
theFlakes[i].left = x[i] + scrl(1) + pix;
currStep[i]+=step[i];

}

setTimeout(snow,timer);

}

function init() {

winsize();
for (i = 0; i < num; i++) {

  theFlakes[i] = document.getElementById("flake"+(idx+i)).style;
  y[i] = Math.round(Math.random()*h);
  x[i] = Math.round(Math.random()*w); 

}

snow();

}

if (window.addEventListener) {

window.addEventListener("resize",winsize,false);
window.addEventListener("load",init,false);

} 

else 
if (window.attachEvent) {

  window.attachEvent("onresize",winsize);
  window.attachEvent("onload",init);

}  


})();
}
</SCRIPT>

Ставить в HTML верх или HTML низ.

+1

3

Hayase
Поверьте, искал. Долго. Видимо проглядел.
Все работает. большое спасибо! А по крупнее снежинки как сделать?
На этом форуме как раз то что мне надо. Но админ обычно ответ на такие вопросы на дает.

Отредактировано Семиэль (27 Дек 2009 16:12:19)

0

4

Семиэль
Вот вам точно такие же снежинки.

Код:
<SCRIPT language=JavaScript>
<!--
Amount=15; 

Image0=new Image();
Image0.src="http://www.scriptik.clan.su/jpg/sneg3.gif";

grphcs=new Array(1)
grphcs[0]="http://www.scriptik.clan.su/jpg/sneg3.gif"

Ypos=new Array();
Xpos=new Array();
Speed=new Array();
Step=new Array();
Cstep=new Array();
ns=(document.layers)?1:0;
if (ns){
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0><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);
rndPic=grphcs[P];
document.write('<img id="si" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
}
document.write('</div></div>');
}
WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;
WinWidth=(document.layers)?window.innerWidth: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()*3+2;
 Cstep[i]=0;//osw
 Step[i]=Math.random()*0.1+0.05;
}
function fall(){
var WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;
var WinWidth=(document.layers)?window.innerWidth:window.document.body.clientWidth;
var hscrll=(document.layers)?window.pageYOffset:document.body.scrollTop;
var wscrll=(document.layers)?window.pageXOffset:document.body.scrollLeft;//fantasyflash.ru 
for (i=0; i < Amount; i++){
sy = Speed[i]*Math.sin(90*Math.PI/180);
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+2;
}
if (ns){
document.layers['sn'+i].left=Xpos[i];
document.layers['sn'+i].top=Ypos[i]+hscrll;
}
else{
si[i].style.pixelLeft=Xpos[i];//osw
si[i].style.pixelTop=Ypos[i]+hscrll;
}
Cstep[i]+=Step[i];
}
setTimeout('fall()',50);
}
fall()
//-->
</SCRIPT>

0

5

Hayase
Спасибо!

0

6

Уважаемые СПИББ гении. А кто подскажет почему в Висте этот скрипт глючит на страницах?
На главной мило сыпется снежок, но как идешь на сам форум и пишешь пост - то внизу происходит дрожание движка.
Это из-за программы или все же что-то со скриптом??

Вот он - кстати очень милый и регулируемый СНЕГ

Код:
 <SCRIPT type="text/javascript"> 
 
 // Set the number of snowflakes (more than 30 - 40 not recommended) 
 var snowmax=35 
 
 // Set the colors for the snow. Add as many colors as you like 
 var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF") 
 
 // Set the fonts, that create the snowflakes. Add as many fonts as you like 
 var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS") 
 
 // Set the letter that creates your snowflake (recommended: * ) 
 var snowletter="*" 
 
 // Set the speed of sinking (recommended values range from 0.3 to 2) 
 var sinkspeed=0.4
 
 // Set the maximum-size of your snowflakes 
 var snowmaxsize=12 
 
 // Set the minimal-size of your snowflakes 
 var snowminsize=8 
 
 // Set the snowing-zone 
 // Set 1 for all-over-snowing, set 2 for left-side-snowing 
 // Set 3 for center-snowing, set 4 for right-side-snowing 
 var snowingzone=1 
 
 /* 
 // * NO CONFIGURATION BELOW HERE * 
 */ 
 
 // Do not edit below this line 
 var snow=new Array() 
 var marginbottom 
 var marginright 
 var timer 
 var i_snow=0 
 var x_mv=new Array(); 
 var crds=new Array(); 
 var lftrght=new Array(); 
 var browserinfos=navigator.userAgent 
 var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/) 
 var ns6=document.getElementById&&!document.all 
 var opera=browserinfos.match(/Opera/) 
 var browserok=ie5||ns6||opera 
 
 function randommaker(range) { 
 rand=Math.floor(range*Math.random()) 
 return rand 
 } 
 
 function initsnow() { 
 if (ie5 || opera) { 
 marginbottom = document.body.clientHeight 
 marginright = document.body.clientWidth 
 } 
 else if (ns6) { 
 marginbottom = window.innerHeight 
 marginright = window.innerWidth 
 } 
 var snowsizerange=snowmaxsize-snowminsize 
 for (i=0;i<=snowmax;i++) { 
 crds[i] = 0; 
 lftrght[i] = Math.random()*15; 
 x_mv[i] = 0.03 + Math.random()/10; 
 snow[i]=document.getElementById("s"+i) 
 snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)] 
 snow[i].size=randommaker(snowsizerange)+snowminsize 
 snow[i].style.fontSize=snow[i].size 
 snow[i].style.color=snowcolor[randommaker(snowcolor.length)] 
 snow[i].sink=sinkspeed*snow[i].size/5 
 if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} 
 if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} 
 if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} 
 if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} 
 snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size) 
 snow[i].style.left=snow[i].posx 
 snow[i].style.top=snow[i].posy 
 } 
 movesnow() 
 } 
 
 function movesnow() { 
 for (i=0;i<=snowmax;i++) { 
 crds[i] += x_mv[i]; 
 snow[i].posy+=snow[i].sink 
 snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]); 
 snow[i].style.top=snow[i].posy 
 
 if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){ 
 if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} 
 if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} 
 if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} 
 if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} 
 snow[i].posy=0 
 } 
 } 
 var timer=setTimeout("movesnow()",50) 
 } 
 
 for (i=0;i<=snowmax;i++) { 
 document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>") 
 } 
 if (browserok) { 
 window.onload=initsnow 
 } 
 </SCRIPT>

0


Вы здесь » Техническая поддержка SpyBB » Корзина » Новогодний скрипт