Más

¿Cómo introducir el intervalo de tiempo variable en el segmento "window.setInterval (function () {…"?

¿Cómo introducir el intervalo de tiempo variable en el segmento


Los siguientes códigos de folletos dibujan una serie de marcadores uno por uno. ¿Cómo introducir intervalo de tiempo variable en el segmento "window.setInterval (function () {…" ?. Quiero mostrar cada marcador durante el tiempo especificado en "myInterval = geojson.coordinates [t] [2]" milisegundos.

   Romper Dibujar                  

La forma estándar de hacer esto es usar setTimeout dentro de una función y llamar a esa función de forma recursiva, incrementando cualquier valor que necesite dentro de la función, en lugar de usar setInterval. Esto le permite pasar variables a la función que se llama de forma recursiva, para variar el intervalo de llamada o algún otro valor, como una búsqueda en una matriz, una posición para la animación, etc.

// crea el primer marcador var hitSequence = L.marker ([26, 80]). addTo (map); // llamada inicial a loop loop (0,0); function loop (t) {// eliminar marcador anterior map.removeLayer (hitSequence); // agrega el siguiente marcador hitSequence = L.marker ([geojson.coordinates [t] [0], geojson.coordinates [t] [1]]). addTo (mapa); // si t es mayor que el tamaño de la matriz de coordenadas, restablecer a 0 if (t> geojson.coordinates.length) {t = 0;} // llamar al ciclo de forma recursiva, incrementando t, y esperando por el tercer elemento en la matriz de coordenadas setTimeout (función () {bucle (++ t);}, coordenadas geojson [t] [2]); }}

Esto hará que t aumente en uno en cada llamada, y el tiempo que muestra cada marcador, se basa en el tercer elemento de la matriz de coordenadas geojson.

Aquí hay un jsFiddle. Saqué un código que no era relevante para la pregunta, como districttar, que arroja un error.

Aquí hay una pregunta similar de Stack Overflow que puede resultarle útil. Además, otra publicación sobre los males de setInterval, que encontré útil y divertida.


Ver el vídeo: : JavaScript setInterval Function - Tutorial