[JS] problema innerHTML

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

[JS] problema innerHTML

Messaggio da treled »

Salve, come posso fare questo pezzo di codice invece di usare il <p id="loading"> metterlo in un div ovvero <div id="loading">?

Codice: Seleziona tutto

var counter = 0;

var start = document.getElementById("start"),
		loading = document.getElementById("loading");

function preload(files)
{
	for(var i = 0; i < files.length; i++) {
		var file = files[i];
		file.addEventListener("loadeddata", function() {
			counter++;
			var percent = Math.floor((counter/files.length)*100);
			loading.innerHTML = "<img src='img/load.png' title='loading'>Loading " + percent + "%";
			if(percent == 100) showButton();
		});
	}
}
preload(files);

function showButton() {
	start.style.top = "30%";
	loading.style.top = "100%";
}
l'html è cosi:

Codice: Seleziona tutto

<!DOCTYPE html>
<html>
<head>
<title>Ping Pong</title>
<script type="text/javascript" src="js/requestAnimationFrame.js"></script>
<link rel="stylesheet" type="text/css" href="framework.css">
<link rel="stylesheet" type="text/css" href="pong.css">
<script type="text/javascript" src="lib.js"></script>

</head>
<body>
<canvas id="game" width="800" height="600"></canvas>
<div id="menu">
	<h1>Ping Pong</h1>
	<a href="javascript: void(0)" id="start" onclick="init()" >Start</a>
	<div id="loading"></div>
</div>
<script type="text/javascript" src="prova.js"></script>
</body>
</html>
idee?

grazie mille e buona giornata.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JS] problema innerHTML

Messaggio da Zoff »

Usare <p> o <div> non cambia nulla.
Che problemi incontri?
Inoltre, che cosa contiene la variabile files?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

ciao, avevo già provato ma solamente che dopo che ha finito di caricare i file audio, non leva la dicitura "Loading 100%" invece l'immagine si.
ecco a te la variabile files:

Codice: Seleziona tutto

var pong_click = loadAudio('media/pong/pong_click.mp3');
var pong_hit = loadAudio("media/pong/pong_hit.mp3");
var mainMusic = loadAudio("media/pong/psy.mp3");
var files = [pong_click, pong_hit, mainMusic];


var counter = 0;

var start = document.getElementById("start"),
		loading = document.getElementById("loading");

function preload(files)
{
	for(var i = 0; i < files.length; i++) {
		var file = files[i];
		file.addEventListener("loadeddata", function() {
			counter++;
			var percent = Math.floor((counter/files.length)*100);
			loading.innerHTML = "Loading " + percent + "%";
			if(percent == 100) showButton();
		});
		
	}
	
}
preload(files);

function showButton() {
	start.style.top = "30%";
	loading.style.top = "100%";
}
il codice di loadaudio è questo:

Codice: Seleziona tutto

// [AudioName] Audio file name
function loadAudio(audioName)
{
	// create new audio object
	var audio = new Audio();
	// load audio
	audio.src = audioName;
	// return audio object
	return audio;
}
ho scritto in inglese i commenti perché dicono di scriverli sempre in inglese se voi che lo usano le altre persone fuori dal'italia.

e l'html è diventato cosi:

Codice: Seleziona tutto

<div id="menu">
	<h1>Ping Pong</h1>
	<a href="javascript: void(0)" id="start" onclick="init()" >Start</a>
	<div id="loading"><img src="img/load.png"></div>
</div>
idee? e come faccio a testare il preload perché si che funziona .. ma lo devo sempre caricare online e caricare un file da 10mb per far che mi fa vedere il preload .. il problema che ho fastweb da 10mbps.

idee?

grazie mille.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JS] problema innerHTML

Messaggio da Zoff »

E dov'è che gli dici di "eliminare la dicitura"?

Se in show button nascondo l'elemento del caricamento a me funziona: http://jsfiddle.net/P4XxE/2/
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

guarda l'esempio del preload lo preso da qui:

http://cssdeck.com/labs/classic-snake-g ... ml5-canvas

se ti interessa,

ma io ho modificato alcune cose.

ciao, ti ho scritto un pm.

saluti a dopo.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JS] problema innerHTML

Messaggio da Zoff »

Nel tuo caso devi toglierlo manualmente, mettere top:100% non rimuove l'elemento dall'area visibile.

Nell'esempio sopra ti ho fatto vedere un modo.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

ok, quasi fatto .. l'unico non riesco ad testarlo essendo che mi carica veloce la pagina da 66% va subito a 100% e dopo scompare.

idee? ,

Provo con il cellulare e poi ti faccio sapere se ho risolto..
ti ringrazio molto.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JS] problema innerHTML

Messaggio da Zoff »

Aggiungi sotto a:

Codice: Seleziona tutto

loading.innerHTML = "Loading " + percent + "%";
questo:

Codice: Seleziona tutto

console.log( loading.innerHTML);
Così puoi vedere nella console del browser l'avanzamento
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

fatto, ora ho ridotto un po il codice,
ma l'unico che non so il motivo perché se metto l'immagine si inchioda a 75%.

ti incollo il codice modificato:

Codice: Seleziona tutto

var background = loadSprite('media/pong/pong.png');
etc..
]var files = [background, pong_click, pong_hit, mainMusic];



function preload(files)
{
	var counter = 0;
	var start = document.getElementById("start"),
	loading = document.getElementById("loading");

	for(var i = 0; i < files.length; i++) {
		var file = files[i];
		file.addEventListener("loadeddata", function() {
			counter++;
			var percent = Math.floor((counter/files.length)*100);
			loading.innerHTML = '<img src="img/load.png"><br />Loading :' + percent + '';
			console.log(loading.innerHTML);
			if(percent == 100)
			{
				start.style.top = "30%";
				loading.style.display = "none";
			}
		});
		
	}
	
}
preload(files);
questo è loadSprite..

non cambia nulla affatto che invece dell'audio carica l'immagine..

ecco:

Codice: Seleziona tutto

// [imageName] image file name
function loadSprite(imageName)
{
	// create new image object
	var image = new Image();
	// load image
	image.src = imageName;
	// return image object
	return image;
}
ti ringrazio moltissimo..

buona giornata.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JS] problema innerHTML

Messaggio da Zoff »

le immagini non hanno un evento loadeddata.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

quindi ? come posso fare?
aggiungere un'altro file.addEventListener("loadeddata", function() {

cambiando l'loadeddata ?

hai link o come fare?.

grazie mille.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

ho fatto cosi:

Codice: Seleziona tutto

<!doctype html>
<html>
<head>
<meta char="utf-8">
</head>
<body>
<script>
var imagesLoaded = 0;
var images = ['media/pong.png', 'media/pong.png', 'media/pong.png'];
for(var i=0; i < images.length; i++){
    imagesLoaded++;
    if(imagesLoaded === images.length){
        
		console.log(imagesLoaded);
		window.alert('done loading');
    }
}
</script>
</body>
</html>
perendo idea da qui:
http://www.reddit.com/r/learnprogramming/comments/1xrf6j/html5javascript_canvas_hell_and_image_preloading/

l'unico che nella console.log mi segnala un 3.

come faccio ad integrarlo nel mio?
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [JS] problema innerHTML

Messaggio da treled »

quasi fatto.. ma come lo metto insieme al mio di sopra?

Codice: Seleziona tutto

<!doctype html>
<html>
<head>
<meta char="utf-8">
</head>
<body>

<div id="loading"></div>
<script>
var imagesLoaded = 0;
loading = document.getElementById("loading");
var images = ['media/pong.png', 'media/pong1.png', 'media/pong2.png'];
for(var i=0; i < images.length; i++){
    imagesLoaded++;
	var percent = Math.floor((imagesLoaded/images.length)*100);
    if(imagesLoaded === images.length){
    		loading.innerHTML = '<img src="img/load.png"><br />Loading :' + percent + '';
			console.log(loading.innerHTML);
			if(percent == 100)
			{			
				loading.style.display = "none";
			}
	}
}
</script>
</body>
</html>
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti