Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: HTML video esitys

Sivun loppuun

Ferdi [24.05.2020 12:12:58]

#

Tässä tehtailen sivustolle uutta HTML video esitystä.
En kuitenkaan saa toimimaan javascriptin video vaihtoa, jokin tuossa nyt mättää ja en netistä vielä ole apua löytänyt tuohon.

<!DOCTYPE html>
<html>

<script language="JavaScript" type="text/javascript">
var movie = new Array();
movie[1] = "video/lintu.mp4";
movie[2] = "video/nuotio.mp4";
movie[3] = "";
movie[4] = "";
</script>

<body>

<button onclick="myFunction('1')" type="button">Change Video 1</button><br>
<button onclick="myFunction('2')" type="button">Change Video 2</button><br>

<video id="myVideo" width="320" height="240" controls autoplay>
  <source id="mp4_src" src="video/AAPG.mp4" type="video/mp4">
  Your browser does not support HTML5 video.
</video>

<script>
function myFunction(play) {
  document.getElementById("mp4_src").src = "movie[play]";
  document.getElementById("myVideo").load();
}
</script>


</body>
</html>

Metabolix [24.05.2020 12:16:25]

#

Siinä mättää tietenkin se, että kun teksti on lainausmerkeissä, se on vain tekstiä eikä sitä etsitä mistään muuttujasta. Eli tietenkin "movie" ja movie ovat koodissa kaksi aivan eri asiaa.

Ferdi [24.05.2020 12:30:39]

#

Kiitos, olinpahan ...?
On tosta vähän aikaa kun viimeksi on tuota JavaScriptiä väännelty mutta nyt pääsen tässä hommassa kivasti eteenpäin.

Lebe80 [25.05.2020 08:54:19]

#

Suora vastaus:

myFunction('1')
// -->
myFunction(1)

ja

"movie[play]";
// -->
movie[play];

noutti [29.05.2020 09:36:12]

#

var movie = new Array();
movie[1] = "video/lintu.mp4";
movie[2] = "video/nuotio.mp4";
movie[3] = "";
movie[4] = "";

Tämän voi muuttaa myös tällaiseksi:

var movie = ["video/lintu.mp4", "video/nuotio.mp4"]

Lebe80 [29.05.2020 12:35:38]

#

noutti kirjoitti:

var movie = new Array();
movie[1] = "video/lintu.mp4";
movie[2] = "video/nuotio.mp4";
movie[3] = "";
movie[4] = "";

Tämän voi muuttaa myös tällaiseksi:

var movie = ["video/lintu.mp4", "video/nuotio.mp4"]

Tällöin vain pitää pitää huoli, että indeksit ovat mitä halutaan. Jos videoiden hallinta luodaan automaattisesti, ei mitään huolta pitäisi olla, mutta jos indeksit on kovakoodattuna, niin tällöin pitää huomioida esim. että arrayt alkaa oletuksena 0:sta eikä 1:stä kuten AP on listan kovakoodannut.

Metabolix [29.05.2020 14:41:27]

#

Toisaalta osoitteet voisi laittaa HTML:ään data-attribuutteina (tai onclickiin, jos haluaa sitä käyttää). Näin pääsee eroon koko taulukosta.

<button data-movie="video/lintu.mp4" onclick="myFunction(this.dataset.movie)">

noutti [30.05.2020 14:19:53]

#

Tai sitten voisit tehdä tästä kunnon overkill metodin jatkamalla tätä:
https://codesandbox.io/s/zen-wozniak-vpwj5?file=/src/index.js


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta