Jump to content
  • 0

Как сделать на сайте падающие снежинки


clavin
 Share

Question

10 answers to this question

Recommended Posts

  • 0

Вить, почему же, если сделать грамотно, то получиться вполне хорошо.

Я конечно, не говорю, что сделал супер-пупуер, но на моем сайте ( http://litefrog.org.ru/ ) до сих пор идет ненавязчивый снежок, покруче сделано было на сайте вердпреса (траектория полета была интересней), но скрипт уже сняли.

Выкопайте снег:

<!-- С Новым годом :) -->
<link href="http://litefrog.org.ru/lf/public/stylesheets/snow.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="http://litefrog.org.ru/lf/public/javascripts/snow.js"></script>
<!-- End -->

Edited by Ялекс
Link to comment
Share on other sites

  • 0

я не люблю такое, когда стараешься что то прочесть и тебе перед буковками снег летит, был тут один маньяк, выложил сайт на котором снежинки сантиметрового диаметра падали, так я после этого боюсь снежинок)

Link to comment
Share on other sites

  • 0
Вить, почему же, если сделать грамотно, то получиться вполне хорошо.

Я конечно, не говорю, что сделал супер-пупуер, но на моем сайте ( http://litefrog.org.ru/ ) до сих пор идет ненавязчивый снежок, покруче сделано было на сайте вердпреса (траектория полета была интересней), но скрипт уже сняли.

Это не снег, а пепел какой-то...

:-)

Link to comment
Share on other sites

  • 0

Забавно тут у вас, человек спрашивает как сделать, а ему в ответ - да тебе это не нужно : ))))

Вообще как я понимаю, судя по обилию этих скриптов снега на всяческих сайтах это уже стандартная библа js-овская, которую все ставят кому не лень, а значит ее можно найти в поиске. Вот например Яндекс по запросу "снег javascript" первой же ссылкой выдал:

http://www.softholm.com/download-software-free7705.htm

Тут можно скачать, оно вроде как работает, останется ток настроить.

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

Link to comment
Share on other sites

  • 0

Вот скрипт:

  //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 = 20;
// 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)
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy