- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Test reazione e calcolo del tempo su immagine
-
Test reazione e calcolo del tempo su immagine
quale funzione mi suggerisci di utilizzare per JAVASCRIPT
vorrei far partire delle immagini al clikkare uno dei tasti Q - P, calcolare il tempo di risposta alle immagini.
grazie
-
Non ho capito bene la natura del tuo problema!
potresti spiegarmi meglio!??!Grazie!
-
vorrei sapere come posso creare un cronometro che parta dal momento in cui visualizzo una immagine, al momento in cui pigio il tasto q.
come posso fare?usereste javascript o php?
grazie
-
Immagino sia Js, lato client non ci fai nulla con il PHP
-
grazie, vada con javascript allora.
consigli?
-
dunque, devo creare un test che registri il tempo di reazione delle persone all'apparire di alcune immagini.
il cronometro si blocchera quando il soggetto spingera' il tasto della tastiera q o p.
puoi aiutarmi?utilizzo la funzione "setTimeout()" per "gestire" il tempo, applico un listener per eventi alla pagina che individui la pressione di un tasto e infine uso la funzione "clearTimeout()" per terminare il conteggio.
aiuto per lo script please?
ciao grazie
-
dunque, ho trovato un cronometro, ma vorrei che mi segnalasse solo i millisecondi (senza ore e minuti) e in piu' che il cronometro si avvi con l'apertura di una immagine. come faccio?
<script language="JavaScript"> var timercount = 0; var timestart = null; function showtimer() { if(timercount) { clearTimeout(timercount); clockID = 0; } if(!timestart){ timestart = new Date(); } var timeend = new Date(); var timedifference = timeend.getTime() - timestart.getTime(); timeend.setTime(timedifference); var minutes_passed = timeend.getMinutes(); if (minutes_passed==0) minutes_passed =59; if(minutes_passed <10){ minutes_passed = "0" + minutes_passed; } var hours_passed = timeend.getHours(); // l'ora qui vale subito "1"... if(hours_passed <10){ hours_passed = "0" + hours_passed; } var seconds_passed = timeend.getSeconds(); if(seconds_passed <10){ seconds_passed = "0" + seconds_passed; } document.timeform.timetextarea.value = hours_passed + ":" + minutes_passed + ":" + seconds_passed; timercount = setTimeout("showtimer()", 1000); } function sw_start(){ if(!timercount){ timestart = new Date(); document.timeform.timetextarea.value = "00:59:00"; timercount = setTimeout("showtimer()", 1000); } else{ var timeend = new Date(); var timedifference = timeend.getTime() - timestart.getTime(); timeend.setTime(timedifference); var hours_passed = timeend.getHours(); var minutes_passed = timeend.getMinutes(); if(hours_passed <10){ hours_passed = "0" + hours_passed; } if(minutes_passed <10){ minutes_passed = "0" + minutes_passed; } var seconds_passed = timeend.getSeconds(); if(seconds_passed <10){ seconds_passed = "0" + seconds_passed; } var milliseconds_passed = timeend.getMilliseconds(); if(milliseconds_passed <10){ milliseconds_passed = "00" + milliseconds_passed; } else if(milliseconds_passed <100){ milliseconds_passed = "0" + milliseconds_passed; } } } function Reset() { timestart = null; document.timeform.timetextarea.value = "00:00:00"; } </script> <form name="timeform"> Time: <input type=text name="timetextarea" value="00:00" size="10" style = "font-size:20px"> <br> <br> <input type=button name="start" value="Start/Lap" onclick="sw_start()"> <input type=button name="reset" value="Reset" onclick="Reset()"> </form>
-
mi servirebbe un aiuto per aggiustare lo script:
il cronometro funziona solo per la prima immagine e poi si blocca a 0 per le successive.
poi vorrei che tutte le immagini partissero da sole dopo aver pigiato il bottone di reazione.
grazie<?php // Qui specifica le variabili $dirimm = "fototest"; // Specifica la directory delle immagini $titolo = "Questionario"; // Il titolo della pagina $immg = array(); $nimg = 0; $dirhan = opendir($dirimm); while(false !== ($fimm = readdir($dirhan))) { if($fimm != "." && $fimm != "..") { $immg[$nimg] = $dirimm."/".$fimm; $nimg++; } } closedir($dirhan); ?> <script type="text/javascript" language="javascript"> var msec = 0; var sec = 0; var min = 0; var hour = 0; var frase = ""; var nim = <?php echo count($immg); ?>; var nin = 0; var dimm = new Array(); <?php foreach($immg as $key => $img) { $gim = getimagesize($img); echo "dimm[".$key."] = '<img src=\"".$img."\" ".$gim[3].">';\n"; } ?> function cronometro(inp) { msec++; if(msec == 1000) { msec = 0; sec++; } if(msec <= 9) { msec = "000" + msec; } else if(msec > 9 && msec <= 99) { msec = "00" + msec; } else if(msec > 99 && msec <= 999) { msec = "0" + msec; } tou = window.setTimeout('cronometro()', 1); document.getElementById('cronometro').value = "1"; } function reaz(num) { nin++; if(num == 1) { frase += "Hai reagito positivamente all'immagine"; } else if(num == 0) { frase += "Hai reagito negativamente all'immagine"; } frase += " in " + sec + "," + msec + " secondi."; if(nin <= nim) { frase += "<br><br><a href=\"javascript:avanti(" + nin + ")\">Vai alla prossima immagine</a>"; } document.getElementById('esito').innerHTML = frase; document.getElementById('cronometro').value = "0"; window.clearTimeout(tou); } function avanti(num) { document.getElementById('divimm').innerHTML = dimm[num]; document.getElementById('esito').innerHTML = ""; sec = 0; msec = 0; min = 0; hour = 0; } function tasti() { // A 65 - L 76 var tasto = window.event.keyCode; if(tasto == 65) { reaz(1); } else if(tasto == 76) { reaz(0); } } function FP_preloadImgs() { var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array(); for(var i=0; i<a.length; i++) { d.FP_imgs*=new Image; d.FP_imgs*.src=a*; } } </script> <title><?php echo $titolo; ?></title> </head> <body onload="avanti(0); cronometro(document.getElementById('cronometro').value); FP_preloadImgs(<?php foreach($immg as $img) { echo "'".$img."', "; } ?>'')" onkeyup="tasti()"> <input type="hidden" name="cronometro" id="cronometro" value="0">