Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3

    <img onClick="funzione"/> OnClick non chiama la funzione

    Ciao, sono un principiante. Ho appena incominciato a studiare Javascript e dunque inizio ad avere i primi problemi con gli esercizi.
    Quale forum se non questo per chiedere aiuto.

    Le due funzioni all'interno dello script di cui sotto dovrebbero ingrandire le dimensioni di un'immagine e diminuire quelle dell'altra, a seconda della scelta.
    Tutto questo non accade. La funzione non viene neppure richiamata (ho provato a mettere un alert() come prima istruzione delle funzioni e non appare nulla). Spero non sia un errore di html, non sono molto preparato neanche su quell'argomento. Ecco il codice e spero che qualche anima pia sia disposto a concedermi un po' del suo tempo.
    Grazie

    codice:
    <html>
    <head>
    	<script language="javascript" type="text/javascript">
    		function img1Win() {
    			var img1 = document.images[0];
    			var img2 = document.images[1];
    			var widthDegreeImg1 = img1.width / 100;
    			var widthDegreeImg2 = img2.width / 100;
    			var heightDegreeImg1 = img1.height / 100;
    			var heightDegreeImg2 = img2.height / 100;
    			
    			for(var i = 0; i < 9; i++) {
    				setTimeout(
    					img1.width += widthDegreeImg1;
    					img1.height += heightDegreeImg1;
    					img2.width -= widthDegreeImg2;
    					img2.height -= heightDegreeImg2,
    					100
    				);
    			}
    		}
    		
    		function img2Win() {
    			var img1 = document.getElementById("img1");
    			var img2 = document.getElementById("img2");
    			var widthDegreeImg1 = img1.width / 100;
    			var widthDegreeImg2 = img2.width / 100;
    			var heightDegreeImg1 = img1.height / 100;
    			var heightDegreeImg2 = img2.height / 100;
    			
    			for(var i = 0; i < 9; i++) {
    				setTimeout(
    					img2.width += widthDegreeImg2;
    					img2.height += heightDegreeImg2;
    					img1.width -= widthDegreeImg1;
    					img1.height -= heightDegreeImg1,
    					100
    				);
    			}
    		}			
    	</script>
    </head>
    <body>
    	<div>
    	[img]firefox.jpg[/img][img]chrome.jpg[/img]
    	</div>
    </body>
    </html>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto manca id nelle immagini in + nella seconda immagine mancano le parentesi tonde alla funzione, il javascript e una programmazione abbastanza complessa un minimo bisogna conoscerla guida col solo copia/incolla andrai poco lontano
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3
    Ho apportato le modifiche da te suggerite ma non è cambiato nulla. Tu per caso hai provato ad eseguire lo script ed ha funzionato? Gli Id sono necessari?
    Non sono uno sprovveduto, ovviamente non mi metto a scrivere codice senza sapere nulla su quello che sto facendo. Infatti sto studiando dal libro Javascript Bible e li le parentesi non le mette quando la funzione non ha parametri d'ingresso. Come potrai notare sto provando a scrivere le stesse cose in modi differenti per vedere cosa cambia o se è corretta una sintassi (vedi img1Win acquisizione del reference delle due immagini, e vedi img2Win ). Inoltre non so cosa vuoi insinuare ma quel codice l'ho creato io con le mie manine e la mia testa ( non che ci volesse molto ).
    Comunque grazie della risposta.

    Modifica:

    codice:
    [img]firefox.jpg[/img][img]chrome.jpg[/img]

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3
    Più o meno ce l'ho fatta. Funziona solo sulla prima immagine per ora.

    codice:
    <html>
    <head>
    	<title>My Page</title>
    	<script language="javascript" type="text/javascript">
    		var count = 30;
    		
    		function f(img1,img2) {
    			setTimeout("resize(img1,img2)",100);
    		}
    			
    		function resize(img1, img2) {
    			if (count > 0) {
    				count--;
    				var w1 = img1.width / 100;
    				var w2 = img2.width / 100;
    				var h1 = img1.height / 100;
    				var h2 = img2.height / 100;
    			
    				img1.width += w1;
    				img2.width -= w2;
    				img1.height += h1;
    				img1.height -= h2;
    				
    				f(img1, img2);
    			} else {
    				count = 30;
    			}
    		}
    	</script>
    </head>
    <body>
    	<div>
    	[img]firefox.jpg[/img][img]chrome.jpg[/img]
    	
    	</div>
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.