Autor Zpráva
senior
Profil
Prosím o radu ako upravit JS aby fungoval aj v DIV-e a nie iba v BODY. Ďakujem za každú radu.

<html> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> 
<head>
<script language="JavaScript"> 
<!------------- 


// Vraci nahodne cislo x, kde 0<=x<num 
function randNum (num) { 
var rnd1 = Math.round( (num-1) * Math.random() ) 
    return rnd1; 
} 

// Snezeni 
var items = [ "snow1.gif", "snow2.gif", "snow3.gif" ]; 
var itemsCount=30; 
var screenLeft = 50; 
var screenTop = 50; 
var screenWidth = screen.availWidth - 150; 
var screenHeight = screen.availHeight - 180; 
var moveamountY = 10; 
var moveamountX = 0; 
var randomizeX = 2; 
var randomizeY = 3; 
var fCycleX = false; 
var fCycleY = true; 
var fRandomXwhenYCycles = true; 
var fRandomYwhenXCycles = false; 
var fCycleImages = false; 
var speed = 100; 


var i; 
var Xs = new Array(); 
var Ys = new Array(); 
var Is = new Array(); 

function Animate() { 
var y; 
    for(i=0; i<itemsCount; i++ ) { 

        Ys[i] += moveamountY + ( randNum(2) ? (1) : (-1) ) * randNum(randomizeY);
         Xs[i] += moveamountX + ( randNum(2) ? (1) : (-1) ) * randNum(randomizeX);
 
        if( Xs[i] > screenLeft + screenWidth )  { 
            Xs[i] = fCycleX ? screenLeft : screenLeft + screenWidth; 
            Ys[i] = fRandomYwhenXCycles ? screenTop + randNum(screenHeight) : Ys[i];
         } 
        if( Ys[i] > screenTop + screenHeight )  { 
            Ys[i] = fCycleY ? screenTop : screenTop + screenHeight; 
            Xs[i] = fRandomXwhenYCycles ? screenLeft+ randNum(screenWidth) : Xs[i];
         } 
        if (fCycleImages) { 
            Is[i]++; 
            if(Is[i]>=items.length) Is[i]=0; 
            document.getElementById('animitem'+i).src = items[ Is[i] ]; 
        } 

        document.getElementById('animitem'+i).style.top = Ys[i]; 
        document.getElementById('animitem'+i).style.left = Xs[i]; 
    } 
} 


//--------------> 
</script> 


</head> 
<body bgcolor="#0000FF" text="#FFFFFF"> 
<script language="JavaScript"><!------------- 

if(document.getElementById) { 
   for(i=0; i<itemsCount; i++ ) { 
       Xs[i] = screenLeft + randNum(screenWidth); 
       Ys[i] = screenTop + randNum(screenHeight); 
       Is[i] = randNum(items.length); 
       document.write('<img ID="animitem'+i+'" STYLE="position:absolute; left:'+Xs[i]+'; top:'+Ys[i]+'" src="'+ items[Is[i]] +'">');
    } 
   setInterval("Animate()",speed); 
} 

//-----------></script> 

</body>
</html> 
Kajman_
Profil *
Do divu to klidně dejte, jen mu nezapomeňte nastavit relativní či absolutní poziciování, aby se absolutní pozicování obrázků počítalo vůči němu.
senior
Profil
Kajman:
Vďaka za radu, ale neviem sa s tým pohnúť :-( Môžete mi prosím pomôcť? Ďakujem.
Kajman_
Profil *
Ten skript, co je v body, bude fungovat i v div. Stačí ho tam umístit. V čem je tedy problém?
senior
Profil
Kajman:
Vyskúšal som to, ale nefunguje to. Obrazky zostanú nalepene na sebe v ľavom hornom rohu DIV-u, bez animácie.
senior
Profil
Nakoniec som to vyriešil cez IFRAME.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0