Varios contadores en Javascript para el bucle

Antes de que me desgarro mi pelo y ir por el camino equivocado en términos de depuración. Alguien puede confirmar que este código va a hacer como se pretende. Es decir. animar 5 divs a diferentes posiciones:

var i, j, k;
$('#menuButton').click(function(){
    for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){
        $('.spinner #item' + i).animate({
            left: '+=' + j,
            bottom: '+=' + k
          }, 500, function() {
            //Animation complete.
        });
    }
});

Cuando hago clic en el #menuButton, no pasa nada y me sale este error:

Uncaught SyntaxError: testigo Inesperado ; en el ‘for()’ de la línea de…

  • Un bucle for en tan sólo tres expresiones. Usted probablemente querrá , entre asignaciones de variables. El ; son para la separación de la asignación inicial, la condición y la expresión para que se ejecute después de cada iteración.
  • ¿Por qué el incremento de tres variables diferentes, más que el incremento de uno y multiplicar por él para el resto de los valores? jsfiddle.net/jasper/7fkx7/2
  • Me gusta mucho, pero no se ajustan a mis necesidades, tengo la necesidad de valores para que se inicie en el que me define…
  • Gotcha. Veo cómo esta sintaxis es fácil de usar en ese caso. Pero usted puede agregar que el valor inicial de cada una de las multiplicaciones: jsfiddle.net/jasper/7fkx7/3. bottom : '+=' + (i * -30 + 150). Es como que te enseñan en el álgebra en la Escuela secundaria para la ecuación de una recta :)… ax+c (donde c es su constante y a es su pendiente/tasa)
  • Fantástico!!! De interés, cómo iba yo a aplicar un poco más de efecto curvo, en lugar de sólo en una línea…
  • He aquí una fórmula para una línea curva: ax^n + c (30x^0.9 + 150) donde a es su pendiente/tasa, n es su multiplicador exponencial, y c es su constante (intercepto). Y un ejemplo con una pequeña cantidad de la curva: jsfiddle.net/jasper/7fkx7/4. Aquí está un ejemplo con una curva más: jsfiddle.net/jasper/7fkx7/5
  • OK, me estoy divirtiendo con esto, he aquí un ejemplo del uso de la Math.sin() función para colocar elementos DOM en un pecado de la curva de la ruta: jsfiddle.net/jasper/7fkx7/6
  • Usted señor, volar mi mente. Estoy haciendo esto para una demostración post, voy a crédito en consecuencia : )

InformationsquelleAutor benhowdle89 | 2011-12-01

3 Kommentare

  1. 44

    Tienes algunos signos de punto y coma donde desea comas:

    for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30) { /* do work */ }

    Sólo debe tener tres «declaraciones» en el interior de su for

    for( [init]; [test]; [increments]) { [block] }

    Para hacer múltiples [inits] o [increments] usted tiene que utilizar el a veces mágico, pero que a menudo olvidado, operador coma

  2. 13

    demasiado signos de punto y coma no

    for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){

    debe ser

    for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30){

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea