Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Javascript: конфликт между двумя скриптами (http://forum.oszone.net/showthread.php?t=127403)

morgan1991 30-12-2008 16:10 993804

Javascript: конфликт между двумя скриптами
 
Помогите пожалуйста.
Почему вот эти два скрипта вместе на форуме не работают либо один, либо другой, а ставлю сразу два то работает только второй.
Код:

<html>
<head>
<script>
// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=25

// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD")

// 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=1

// Set the maximal-size of your snowflaxes
var snowmaxsize=30

// Set the minimal-size of your snowflaxes
var snowminsize=10

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

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS 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>

<script type="text/javascript">
<!--
function newYearIn()
{
var days="<b> дней и </b>"
var now = new Date();
var newYear = new Date("Jan,1,2009,00:00:00");
var totalRemains = (newYear.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
if (
RemainsFullDays==2 ||
RemainsFullDays==3 ||
RemainsFullDays==4 ||
RemainsFullDays==22 ||
RemainsFullDays==23 ||
RemainsFullDays==24 ||
RemainsFullDays==32 ||
RemainsFullDays==33 ||
RemainsFullDays==34
) {
days="<b> дня и </b>"
}
if (
RemainsFullDays==1 ||
RemainsFullDays==21 ||
RemainsFullDays==31
) {
days="<b> день и </b>"
}
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2009, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('newyear').innerHTML = "<center><b>До Нового Года осталось: "+RemainsFullDays+days+RemainsFullHours+":"+RemainsMinutes+":"+lastSec+"</b></center>";
setTimeout("newYearIn()",10);
}
else {document.getElementById("newyear").innerHTML = "<center><b> C НОВЫМ ГОДОМ !!! </b></center> ";}
}
//-->
</script>

<body onload="newYearIn()">
<span id="newyear"></span>
</body>
</head>
</html>

Может кто знает как исправить?

DedAlex 30-12-2008 23:03 994129

Ваша проблема в этом
Код:

  window.onload=initsnow
...
<body onload="newYearIn()">

Просто перенесите уберите window.onload=initsnow а после
Код:

function newYearIn()
{

добавьте initsnow();

morgan1991 31-12-2008 01:51 994243

DedAlex, большое спасибо, но после этих действий снежинки из первого скрипта начинают падать с такой скоростью что браузер начинает зависать...
Код:

<html>
<head>
<script>
// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=25

// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD")

// 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=1

// Set the maximal-size of your snowflaxes
var snowmaxsize=30

// Set the minimal-size of your snowflaxes
var snowminsize=10

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

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS 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>

 <script type="text/javascript">
<!--
function newYearIn()
{
initsnow();
var days="<b> дней и </b>"
var now = new Date();
var newYear = new Date("Jan,1,2009,00:00:00");
var totalRemains = (newYear.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
if (
RemainsFullDays==2 ||
RemainsFullDays==3 ||
RemainsFullDays==4 ||
RemainsFullDays==22 ||
RemainsFullDays==23 ||
RemainsFullDays==24 ||
RemainsFullDays==32 ||
RemainsFullDays==33 ||
RemainsFullDays==34
) {
days="<b> дня и </b>"
}
if (
RemainsFullDays==1 ||
RemainsFullDays==21 ||
RemainsFullDays==31
) {
days="<b> день и </b>"
}
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2009, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('newyear').innerHTML = "<center><b>До Нового Года осталось: "+RemainsFullDays+days+RemainsFullHours+":"+RemainsMinutes+":"+lastSec+"</b></center>";
setTimeout("newYearIn()",10);
}
else {document.getElementById("newyear").innerHTML = "<center><b> C НОВЫМ ГОДОМ !!! </b></center> ";}
}
//-->
</script>

<body onload="newYearIn()">
<span id="newyear"></span>
</body>
</head>
</html>

Может всё дело в этом?
Код:

setTimeout("newYearIn()",10);

DedAlex 31-12-2008 07:24 994294

:blush2: Да, вы правы. Вот так работает нормально
Код:

<html>
<head>
<script>
// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=25

// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD")

// 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=1

// Set the maximal-size of your snowflaxes
var snowmaxsize=30

// Set the minimal-size of your snowflaxes
var snowminsize=10

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

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS 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>

 <script type="text/javascript">
<!--
function newYearIn()
{
//initsnow();
var days="<b> дней и </b>"
var now = new Date();
var newYear = new Date("Jan,1,2009,00:00:00");
var totalRemains = (newYear.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
if (
RemainsFullDays==2 ||
RemainsFullDays==3 ||
RemainsFullDays==4 ||
RemainsFullDays==22 ||
RemainsFullDays==23 ||
RemainsFullDays==24 ||
RemainsFullDays==32 ||
RemainsFullDays==33 ||
RemainsFullDays==34
) {
days="<b> дня и </b>"
}
if (
RemainsFullDays==1 ||
RemainsFullDays==21 ||
RemainsFullDays==31
) {
days="<b> день и </b>"
}
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2009, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('newyear').innerHTML = "<center><b>До Нового Года осталось: "+RemainsFullDays+days+RemainsFullHours+":"+RemainsMinutes+":"+lastSec+"</b></center>";
setTimeout("newYearIn()",10);
}
else {document.getElementById("newyear").innerHTML = "<center><b> C НОВЫМ ГОДОМ !!! </b></center> ";}
}

function init(){
if (browserok) {
 initsnow();
}
 newYearIn();
}
//-->
</script>
</head>

<body onLoad="init()">
<span id="newyear"></span>
</body>
</head>
</html>


morgan1991 31-12-2008 14:13 994499

Огромное спасибо!!!

pansan666 23-06-2013 05:01 2172502

Помогите, не могу такой же код реализовать на одной странице!!!


<div id="html2" style="position:absolute; overflow:hidden; left:664px; top:5416px; width:567px; height:65px; z-index:93">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title></title>

<script type="text/javascript">
<!--
function newYearIn()
{
var now = new Date();
var newYear = new Date("jule 21, 2013, 00:00:00");
var totalRemains = (newYear.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("jule 21, 2013, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('newyear2').innerHTML = " "+RemainsFullDays+" д. "+RemainsFullHours+" ч. "+RemainsMinutes+" м. "+lastSec+"";
setTimeout("newYearIn()",10);
}
else {document.getElementById("newyear2").innerHTML = "Акция окончена!!!";}
}
//-->
</script>

</head>

<body onload="newYearIn()" >

<font class="ws36" color="#B30000" face="Arial Black" font-weight="900" align="center">

<span id="newyear2"></span>

</font>
</body>
</html>
</div>


Время: 11:22.

Время: 11:22.
© OSzone.net 2001-