Autor Zpráva
Rob
Profil
Vážení přátelé, znovu se na vás obracím s prosbou o pomoc.

Pokouším se o animaci objektu. Žádný ze scriptů mi nefungoval, tak jsem udělal to, že jsem ze stránek JakPsátWeb někde z ukázek JavaScriptu vzal zdrojový kód a ten opsal (samodřejmě jsem změnil id objektu apod.) akorát jsem udělal tu změnu, že nemám proměnou s hodnotou document.getElementById(něco).style a dále jmeno_promene.left jsem zapsal rovnou document.getElementById(něco).style.left, protože mi to nechtělo fungovat, tak jsem to bral jako možnost. Každopádně o co mi jde. Zkusil jsem všechno možné, jak jsem psal výše, tak jsem to i opsal a prostě mi to nefunguje, ale ten script z JakPsátWeb mi fungovalm, takže ve počítači nebo prohlížeči to určitě nebude. Proto se v úplném zoufalství obracím na vás. Koukněte se prosím na tento zdrojový kód a zkuste tam najít chybu, mě se to prostě nepovedlo.

<html>
<head>
<title>Animace</title>
<script language="JavaScript">
<!--
var poziceX=0;
var poziceY=0;
function start()
{
window.setInterval("krok(5,0);",100)
}
function krok(stepX,stepY)
{
poziceX+=stepX;
poziceY+=stepY;
document.getElementById("okno").style.left=poziceX;
document.getElementById("okno").style.top=poziceY;
}
//-->
</script>
</head>
<body>
<div id="okno" style="width: 200px; height: 200px; background-color: red" onClick="start();"></div>
</body>
</html>
Anonymní
Profil *
Našel jsem tam dvě chyby. Ten prvek musí být absolutně (nebo jinak) pozicovaný a chyběly Ti tam jednotky. Takhle to funguje:


<html>
<head>
<title>Animace</title>
<script language="JavaScript">

var poziceX=0;
var poziceY=0;
function start()
{
window.setInterval("krok(5,0)", 100)
}

function krok(stepX,stepY)
{
poziceX+=stepX;
poziceY+=stepY;
document.getElementById("okno").style.left= poziceX + 'px';
document.getElementById("okno").style.top= poziceY+ 'px'[/b];
}

</script>
</head>
<body>
<div id="okno" style="width: 200px; height: 200px; background-color: red; position: absolute" onClick="start();"></div>
</body>
</html>

Oswald
Profil
Sorry, ještě jednou:



<html>
<head>
<title>Animace</title>
<script language="JavaScript">

var poziceX=0;
var poziceY=0;
function start()
{
window.setInterval("krok(5,0)", 100)
}

function krok(stepX,stepY)
{
poziceX+=stepX;
poziceY+=stepY;
document.getElementById("okno").style.left= poziceX + 'px';
document.getElementById("okno").style.top= poziceY + 'px';
}

</script>
</head>
<body>
<div id="okno" style="width: 200px; height: 200px; background-color: red; position: absolute" onClick="start();"></div>
</body>
</html>

Rob
Profil
Díky už to běží jako na drátkách. Jen drobnost. Ty jednotky tam byly ale jak jsem přepsal promena.left na document.getElement......left tak jsem je zapoměl az pri přepisování. Takže chyba byla v tom, že chyběla position. Nechápu jak jsem to mohl přehlédnout. Každopádně velmi děkuji, protože jsem z toho už šílel. Robin
peta
Profil *
Rob
nekde jsem videl pouzivat misto
.left=
.posLeft= nebo tak neco (leftPos=) a tam se jednotky nepisi.
Rob
Profil
peta
to zní zajímavě, ale přijde mi to tak, že proč dělat něco jednoduše, když to jde složitě, ale každopádně díky za poučení.
peta
Profil *
Rob
Nene, tak jsem to nemyslel. Jen to mam v par programech, nemam to prozkoumany s kompatibilitou prohlizecu a treba se ti bude chtit :) ja taky pouzivam px
Toto téma je uzamčeno. Odpověď nelze zaslat.

0