Estoy haciendo una página web que incluye un reloj con una flecha en el centro. Cuando el usuario hace clic en una hora, la flecha gira para apuntar a lo que hizo clic.Cómo rotar una imagen en sentido horario o antihorario, ¿cuál de las dos es más corta?
Estoy usando un jQuery image rotate plugin (jQueryRotate) para rotar la flecha.
Aquí está el código actual para calcular el número de grados para hacer girar:
var numTiles = $("ul li").size(); // Number of tiles is however many are listed in the UL, which is 12
var sel = 0; // Default hour selection
var rot = 0; // Default rotation is at the top (0 degrees)
var gap = 360/numTiles; // Degrees between each tile
function rotateArrow(num) {
rot = num * gap;
$("#arrow").rotateAnimation(rot);
sel = num;
}
Cuando el usuario hace clic en una de las horas, pasa num como un valor de 1 a 12.
Se funciona bien, pero el problema es que si la flecha apunta a la 1 en punto, y el usuario hace clic en las 11 en punto, la flecha gira en sentido horario 300 grados, cuando tendría más sentido girar 60 grados en el sentido contrario a las agujas del reloj.
Entonces, ¿cómo puedo escribir una ecuación para tomar la hora actual (num) y la hora presionada (sel), y generar un valor como número positivo o negativo, que es igual al número de grados para rotar que es más eficiente, en lugar de solo rotar en una dirección?
Cualquier consejo es apreciado. Hazme saber si tienes alguna pregunta. ¡Gracias!
Ivo, eso es todo! ¡Muchas gracias! Lancé un Math.round() solo para obtener un número entero, para referencia futura – Wes