Tom Kruz Опубликовано 5 марта, 2006 Жалоба Поделиться Опубликовано 5 марта, 2006 (изменено) Скачал скрипт снежинок, поставил на страницу, но проблема в том, что скрипт не рассчитан на то, что у страницы могут быть полосы прокрутки, и снежинки идут только до опледелённого момента на странице, а ниже уже не идут, может кто знает как это исправить? Вот скрипт: <script LANGUAGE="JavaScript1.2"> <!-- Altan (snow@altan.hr) --> <!-- WWW: http://www.altan.hr/snow --> <!-- Begin var no = 25; //кол-во снежинок var speed = 10; // скорость var snowflake = "1.gif"; // картинка var ns4up = (document.layers) ? 1 : 0; // browser sniffer var ie4up = (document.all) ? 1 : 0; 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 (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 = 0; // set coordinate variables xp = Math.random()*(doc_width-50); // set position variables yp = Math.random()*doc_height; am = Math.random()*20; // set amplitude variables stx = 0.02 + Math.random()/10; // set step variables sty = 0.7 + Math.random(); // set step variables if (ns4up) { // set layers if (i == 0) { document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); document.write("top=\"15\" visibility=\"show\"><img src=\""); document.write(snowflake + "\" border=\"0\"></layer>"); } else { document.write("<layer name=\"dot"+ i +"\" left=\"15\" "); document.write("top=\"15\" 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: 15px; LEFT: 15px;\"><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: 15px; LEFT: 15px;\"><img src=\""); document.write(snowflake + "\" border=\"0\"></div>"); } } } function snowNS() { // Netscape main animation function for (i = 0; i < no; ++ i) { // iterate for every dot yp += sty; if (yp > doc_height-50) { xp = Math.random()*(doc_width-am-30); yp = 0; stx = 0.02 + Math.random()/10; sty = 0.7 + Math.random(); doc_width = self.innerWidth; doc_height = self.innerHeight; } dx += stx; document.layers["dot"+i].top = yp; document.layers["dot"+i].left = xp + am*Math.sin(dx); } setTimeout("snowNS()", speed); } function snowIE() { // IE main animation function for (i = 0; i < no; ++ i) { // iterate for every dot yp += sty; if (yp > doc_height-50) { xp = Math.random()*(doc_width-am-30); yp = 0; stx = 0.02 + Math.random()/10; sty = 0.7 + Math.random(); doc_width = document.body.clientWidth; doc_height = document.body.clientHeight; } dx += stx; document.all["dot"+i].style.pixelTop = yp; document.all["dot"+i].style.pixelLeft = xp + am*Math.sin(dx); } setTimeout("snowIE()", speed); } if (ns4up) { snowNS(); } else if (ie4up) { snowIE(); } // End --> </script> Сам я не особо в этом разбираюсь, но хочу обратить внимание, что в начале в скрипте есть такая строчка var i, doc_width = 800, doc_height = 600; В начале я подумал, что это и есть область, где должны быть снежинки, но при изменении (увеличении) чисел, область падения снежинок не увеличилась. Если кто знает что нужно сделать, помогите please. Изменено 5 марта, 2006 пользователем Tom Kruz Ссылка на комментарий Поделиться на другие сайты Поделиться
verba Опубликовано 6 марта, 2006 Жалоба Поделиться Опубликовано 6 марта, 2006 попробуй вот этот <html><head><title>WOweb.ru - Scripts - JavaScript - Rain</title><META http-equiv="Content-Type" content="text/html; charset=windows-1251"><META NAME="description" CONTENT="Коллекции CGI, PHP, JavaScript скриптов, Java апплеты, огромное количество документации по разным языкам программирования, анимированные гифы, фоны, полезные программы, форум, ссылки по теме."><META NAME="keywords" CONTENT="perl scripts, perl, cgi scripts, cgi, перл, java, java scripts, веб-программирование, web-programming, html, каталог ссылок, документация по веб-программированию, cgi скрипты, java скрипты, игры, java апплеты, апплеты, гифы, скрипты, скрипт, книги по веб-программированию, форум по perl, CGI, Perl, script, HTML"><Style> A:Link{ Color: #000000; Text-decoration: underline} A:Visited{ Color: #000000; Text-decoration: underline} A:Hover{ Color: #000000; Text-decoration: none}td, body {font-family: verdana, arial, helvetica; font-size:11px;} </Style><!-- HEAD START HERE --><!-- HEAD END HERE --></head><body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0"><center><!-- BODY START HERE --><script LANGUAGE="JavaScript"><!-- Beginvar no = 50;var speed = 1;var ns4up = (document.layers) ? 1 : 0;var ie4up = (document.all) ? 1 : 0;var s, x, y, sn, cs;var a, r, cx, cy;var i, doc_width = 800, doc_height = 600;if (ns4up) {doc_width = self.innerWidth;doc_height = self.innerHeight;}elseif (ie4up) {doc_width = document.body.clientWidth;doc_height = document.body.clientHeight;}x = new Array();y = new Array();r = new Array();cx = new Array();cy = new Array();s = 8;for (i = 0; i < no; ++ i) { initRain();if (ns4up) {if (i == 0) {document.write("<layer name=\"dot"+ i +"\" left=\"1\" ");document.write("top=\"1\" visibility=\"show\"><font color=\"blue\">");document.write(",</font></layer>");}else {document.write("<layer name=\"dot"+ i +"\" left=\"1\" ");document.write("top=\"1\" visibility=\"show\"><font color=\"blue\">");document.write(",</font></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: 15px; LEFT: 15px;\"><font color=\"blue\">");document.write(",</font></div>");}else {document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");document.write("visible; TOP: 15px; LEFT: 15px;\"><font color=\"blue\">");document.write(",</font></div>"); } }}function initRain() {a = 6;r[i] = 1;sn = Math.sin(a);cs = Math.cos(a);cx[i] = Math.random() * doc_width + 1;cy[i] = Math.random() * doc_height + 1;x[i] = r[i] * sn + cx[i];y[i] = cy[i];}function makeRain() {r[i] = 1;cx[i] = Math.random() * doc_width + 1;cy[i] = 1;x[i] = r[i] * sn + cx[i];y[i] = r[i] * cs + cy[i];}function updateRain() {r[i] += s;x[i] = r[i] * sn + cx[i];y[i] = r[i] * cs + cy[i];}function raindropNS() {for (i = 0; i < no; ++ i) {updateRain();if ((x[i] <= 1) || (x[i] >= (doc_width - 20)) || (y[i] >= (doc_height - 20))) {makeRain();doc_width = self.innerWidth;doc_height = self.innerHeight;}document.layers["dot"+i].top = y[i];document.layers["dot"+i].left = x[i];}setTimeout("raindropNS()", speed);}function raindropIE() {for (i = 0; i < no; ++ i) {updateRain();if ((x[i] <= 1) || (x[i] >= (doc_width - 20)) || (y[i] >= (doc_height - 20))) {makeRain();doc_width = document.body.clientWidth;doc_height = document.body.clientHeight;}document.all["dot"+i].style.pixelTop = y[i];document.all["dot"+i].style.pixelLeft = x[i];}setTimeout("raindropIE()", speed);}if (ns4up) {raindropNS();}elseif (ie4up) {raindropIE();}// End --></script><!-- BODY END HERE --></body></html> Ссылка на комментарий Поделиться на другие сайты Поделиться
Tom Kruz Опубликовано 6 марта, 2006 Автор Жалоба Поделиться Опубликовано 6 марта, 2006 verba: Проблема остаётся и с этим скриптом, дождик падает до определённого места на странице, а ниже никак... :-( Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти