@cronos,
el problema en si no es getStyle, como ya explique antes, javascript tiene un error de precision al calcular con numeros y por alguna razon el ultimo ciclo de
salida no lo realiza bien. un parcho a la ligera, lo que se me ocurre es que luego de asignar el nuevo valor, analices si el valor es menor que la variable
incr. si es cierto, asignas a opacity el valor 0. de esta manera puedes controlar que el ciclo no continue. sin embargo, en el caso de
salida('lento') el ultimo valor calculado es mayor que la variable
incr. lo que hice fue que le sume a
incr .01.
saludos a todos!