Foros del Web » Programando para Internet » Javascript »

Cambiar evento de onclic a presionar tecla

Estas en el tema de Cambiar evento de onclic a presionar tecla en el foro de Javascript en Foros del Web. Hola a todos, modifiqué un script para animar un div: Código: if (document.getElementById && document.getElementsByTagName) { if (window.addEventListener) window.addEventListener('load', der, false); else if (window.attachEvent) window.attachEvent('onload', ...
  #1 (permalink)  
Antiguo 18/12/2007, 11:54
Avatar de juwe  
Fecha de Ingreso: abril-2001
Ubicación: Guadalupe Inn
Mensajes: 622
Antigüedad: 23 años
Puntos: 0
Cambiar evento de onclic a presionar tecla

Hola a todos, modifiqué un script para animar un div:

Código:
if (document.getElementById && document.getElementsByTagName) {
if (window.addEventListener) window.addEventListener('load', der, false);
else if (window.attachEvent) window.attachEvent('onload', der);
}
function der() {
	var moveIt = document.getElementById('moveit');
	moveIt.onclick = moveToRight;
	function moveToRight() {
		if (!this.currentPos) this.currentPos = [moveIt.offsetLeft,15];
		doPosChangeMem(this,[moveIt.offsetLeft,moveIt.offsetTop],[moveIt.offsetLeft+350,moveIt.offsetTop],20,20,0.5);
		}
}

function doPosChangeMem(elem,startPos,endPos,steps,intervals,powr) {
//Position changer with Memory by www.hesido.com
	if (elem.posChangeMemInt) window.clearInterval(elem.posChangeMemInt);
	var actStep = 0;
	elem.posChangeMemInt = window.setInterval(
		function() {
			elem.currentPos = [
				easeInOut(startPos[0],endPos[0],steps,actStep,powr),
				easeInOut(startPos[1],endPos[1],steps,actStep,powr)
				];
			elem.style.left = elem.currentPos[0]+"px";
			elem.style.top = elem.currentPos[1]+"px";
			actStep++;
			if (actStep > steps) window.clearInterval(elem.posChangeMemInt);
		}
		,intervals)

}

//******************

function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {
//Generic Animation Step Value Generator By www.hesido.com
	var delta = maxValue - minValue;
	var stepp = minValue+(Math.pow(((1 / totalSteps)*actualStep),powr)*delta);
	return Math.ceil(stepp)
}
**Actualización** me faltó poner el script completo y sin mis comentarios. Disculpen.

Esto hace que cuando le doy clic al div con id "moveit" avance algunos pixeles hacía la derecha, funciona muy bien y todo. Lo que no logro hacer es que en lugar de funcionar con un clic, sea con presionar las flechas del teclado, al final lo que quiero es que se mueva para todos lados clonando esta función para cada lado, como quien dice, desplazarlo por todo el documento dependiendo de que tecla presione, he leido que con AddEventListener puede ser pero nomás ninguno de mis intentos ha fructificado. ¿Alguna idea?

Gracias por adelantado.
__________________
blog.juwestudio

Última edición por juwe; 18/12/2007 a las 12:06
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.