Autor Zpráva
leorond
Profil
Ahoj, potřeboval bych použít místo onclick -> onload ale nevím jak to udělat když onload se dá párovat jen s body iframe a img. Mohl by mi někdo pomoci? V JavaScriptech jsem nováček.

<div onclick="move(this.children[0], makeEaseOut(bounce))" class="example_path">
<div class="example_block">ROBÍME SVET LEPŠÍM</div>

Děkuji
Chamurappi
Profil
Reaguji na leoronda:
Dej skript, který se má vykonat při načtení, normálně jako <script> za ten <div>. Nebudeš tam mít pochopitelně this, musíš si ten element najít jinak…
_es
Profil
leorond:
když onload se dá párovat jen s body iframe a img
Logicky tá udalosť funguje na elementy, do ktorých sa načítava obsah z k ním príslušiaceho URL. Ako a kedy by mala fungovať na Div element?
leorond
Profil
Dejme tomu že bych chtěl spustit automaticky jednoduchou animaci po příchodu na stránku

Živá ukázka

Jak a proč bych měl upravit tento script?

Prosím ať se něco málo naučím :)


<!DOCTYPE HTML>
<html>
<head>
<link type="text/css" rel="stylesheet"
  href="/files/tutorial/browser/animation/animate.css">
<script>
function move(elem) {
 
  var left = 0
 
  function frame() {
     
    left++  // update parameters
     
    elem.style.left = left + 'px' // show frame
 
    if (left == 100)  // check finish condition
      clearInterval(id)
  }
 
  var id = setInterval(frame, 10) // draw every 10ms
}
</script>
</head>
 
<body>
<div onclick="move(this.children[0])" class="example_path">
    <div class="example_block"></div>
</div>
</body>
</html>



Chtěl bych podobným způsobem udělat přijíždějící text na úvodní obrázek stránky
_es
Profil
leorond:
Je vhodné na oddeľovanie príkazov používať bodkočiarku (;), inak možeš vyrobiť ťažšie odhaliteľnú chybu.
Na zvyšok dotazu:
Viď [#2] Chamurappi. Čo ti bráni použiť funkciu move, hocikde, kde len chceš?
leorond
Profil
Takže to by znamenalo že pokud udělám zápis takto:

<div class="example_path">
    <script type="text/javascript">
function move(elem) {
 
  var left = 0
 
  function frame() {
     
    left++  // update parameters
     
    elem.style.left = left + 'px' // show frame
 
    if (left == 100)  // check finish condition
      clearInterval(id)
  }
 
  var id = setInterval(frame, 10) // draw every 10ms
}
    </script>
    <div class="example_block"></div>
</div>

Tak by se měl spustit automaticky že?
_es
Profil
leorond:
Tak by se měl spustit automaticky že?
Nemáš predsa funkciu move nikde volanú. Funkcia sa volá:
názovFunkcie(argumenty)
. Ak ju chceš zavolať „automaticky“, tak daj jej volanie, aj s vhodnými argumentom, tam, kde sa zavolá „automaticky“. V pôvodnom kóde ([#4] leorond) sa zavolá pri udalosti kliknutia (onclick). Skús si znova pozorne prečítať [#2].
leorond
Profil
Takže

<body onload="NázevFunkce(argumenty)">

by mělo fungovat?

Omlouvám se ale stále to nemohu pochopit [#2] Chamurappi, jak to bylo myšleno?

Najít si ho jinak? Jak a proč tak má vypadat?
Dej skript, který se má vykonat při načtení, normálně jako <script> za ten <div>. Za který a proč za ten?
_es
Profil
leorond:
stále to nemohu pochopit [#2] Chamurappi, jak to bylo myšleno?
<div class="example_block">ROBÍME SVET LEPŠÍM</div><script>
move(objektElementu);
</script>
Pričom objektElementu bude nejaký výraz, ktorého výsledkom bude objekt toho divu.

Takže
<body onload="NázevFunkce(argumenty)">
by mělo fungovat?
Áno, to bude tiež fungovať, no funkcia sa zavolá o niečo neskôr - až bude HTML kód celej stránky spracovaný.
leorond
Profil
Zkusil jsem to Živá ukázka ale nefunguje.

Nevíte proč?
Fisir
Profil
Reaguji na leoronda:
Jak už tu bylo zmíněno, v tomto případě nelze využít this. Prosím, klikni na ten odkaz a přečti si, jaký je jeho význam. Element, kterým chceš hýbat, musíš najít jiným způsobem, třeba mu přidat nějaké id a na něj se pak v JavaScriptu odkazovat.
juriad
Profil
Navíc v té ukázce musíš změnit umístění JavaScriptu (klini vlevo na JS a vyber </head>).

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: