Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Скрипт падающих снежинок JS (https://forum.antichat.xyz/showthread.php?t=156951)

mff 16.11.2009 13:08

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

С меня шестизначная аська.

Спасибо. :)

Morozil_nikЁ 16.11.2009 13:09

Хм , вот что нашел : http://codeguru.ru/web/javascript/samples/%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D1%8F/%D0%B4%D0%B2%D0%B8%D0%B6%D1%83%D1%89%D0%B8%D0%B5%D 1%81%D1%8F-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D0%B9-%D1%81%D0%BD%D0%B5%D0%B3.html

-Unlocked- 16.11.2009 13:15

Код:

<script type="text/javascript">

/******************************************
* Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive DHTML code library (http://www.dynamicdrive.com/) for full source code
* Last updated Nov 9th, 05' by DD. This notice must stay intact for use
******************************************/
 
  //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";

///////////Stop Config//////////////////////////////////

  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;    // coordinate and position variables
  var am, stx, sty;  // amplitude and step variables
  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("dynamicdrive.com")!=-1)? "snow.gif" : snowsrc
  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()/10; // set step variables
    sty[i] = 0.7 + Math.random();    // set step variables
                if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
      } else {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
      }
    }
  }

  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) {  // iterate for every dot
      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)
                }

</script>

Не?

mff 16.11.2009 13:24

-Unlocked- потянет! Правда если уменьшить окно браузера, появляеться прокрутка внизу. Но если обновить, скрипт понимает ширину окна. Спасибо. Если ни чего не предложат лучше, отдам тебе шестерку :)

mff 16.11.2009 13:57

А вот нашел скрипт, он не требует графики:
Код HTML:

<script language="javascript">
var snowmax=45;
var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF");
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS");
var snowletter="*";

// 0.3 to 2
var sinkspeed=0.6;
var snowmaxsize=40;
var snowminsize=10;

// 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;

//osw
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>

но есть один косяк, снежинки летят не до конца странички. Как это исправить? :confused:

winlogon.exe 16.11.2009 14:30

Вот самый лучший вариант по моему мнению)
Демо: http://www.dynamicdrive.com/dynamicindex3/snow.htm
PHP код:

<script type="text/javascript">

//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";

///////////Stop Config//////////////////////////////////

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

function 
iecompattest(){
return (
document.compatMode && document.compatMode!="BackCompat")? document.documentElement document.body
}

var 
dxxpyp// coordinate and position variables
var amstxsty// amplitude and step variables
var idoc_width 800doc_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("dynamicdrive.com")!=-1)? "snow.gif" snowsrc
for (0no; ++ 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()/10// set step variables
sty[i] = 0.7 Math.random(); // set step variables
if (ie4up||ns6up) {
if (
== 0) {
document.write("<div id=\"dot"+"\" style=\"POSITION: absolute; Z-INDEX: "+"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
} else {
document.write("<div id=\"dot"+"\" style=\"POSITION: absolute; Z-INDEX: "+"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
}
}
}

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 (
0no; ++ i) { // iterate for every dot
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.snowtimerclearTimeout(snowtimer)
for (
i=0i<noi++) document.getElementById("dot"+i).style.visibility="hidden"
}


if (
ie4up||ns6up){
snowIE_NS6();
if (
hidesnowtime>0)
setTimeout("hidesnow()"hidesnowtime*1000)
}

</
script


-Unlocked- 16.11.2009 14:34

winlogon.exe, Я это опубликовал вторым постом... :/

FaS 16.11.2009 14:38

народ эсли у кого эсть плз дайте скриптик нг для сайта чтобы отщитивал дни до нового года, не прост js, а какойто красивый флэш или ище чего :) оч нужен

A_n_d_r_e_i 16.11.2009 14:55

Цитата:

Сообщение от mff
но есть один косяк, снежинки летят не до конца странички. Как это исправить? :confused:

Кто-то дал код, а не обьяснил толком:

Цитата:

<script>
var no = 20; // количество снежинок
var speed = 20; // скорость снежинок
var snowflake = "название"; //рисунок который будет датать

var ns4up = (document.layers) ? 1 : 0;
var ie4up = (document.all) ? 1 : 0;
var dx, xp, yp;
var am, stx, sty;
var i, doc_width = 800, doc_height = 600;
if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
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 (ns4up) {
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"25\" ");
document.write("top=\"25\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"25\" ");
document.write("top=\"25\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
}
} else if (ie4up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 25px; LEFT: 25px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 25px; LEFT: 25px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
}
}
}
function snowNS() {
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();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", speed);
}
function snowIE() {
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();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx[i] += stx[i];
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowIE()", speed);
}
if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
}

</script>
желтый цвет, значения ширины и длины полета снежинок, их подредактируй(подгони под себя), и полоса прокрутки не будет появляться

A_n_d_r_e_i 16.11.2009 15:03

http://depositfiles.com/files/t2009gq36
а тут летят до конца странички, только полоса прокрутки появляется :(


Время: 13:15