Código de JavaScript - Incrementar un valor en un tiempo determinado

Imágen de perfil
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Incrementar un valor en un tiempo determinadográfica de visualizaciones


JavaScript

Publicado el 8 de Abril del 2021 por Joel (150 códigos)
1.311 visualizaciones desde el 8 de Abril del 2021
Este código muestra como incrementar un valor, desde un valor inicial hasta un valor final con un intervalo dado, y en un tiempo determinado.

incrementar-valor-en-un-determinado-tiempo


El elemento que se va a incrementar, tiene que tener el estilo "counter" y hay que definir:
data-from-value -> valor inicial
data-to-value -> valor final
data-increment -> valor de incremento
data-duration -> duración para llegar del valor inicial al valor final

Se muestra la manera de añadir el valor del Euro o porcentaje utilizando el estilo ::after

1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 8 de Abril del 2021gráfica de visualizaciones de la versión: 1
1.312 visualizaciones desde el 8 de Abril del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<head>
    <style>
    .contador {
        font-size:30px;
    }
    .counter {
        color:#E33838;
        font-family:sans-serif;
        font-weight: bold;
        font-size:69px
    }
    .euro::after {
        content:'\20AC';
        margin-left:5px;
    }
    .percent::after {
        content:'%';
        margin-left:5px;
    }
    </style>
</head>
<body>
<div class='contador'>
    <span class="counter percent" data-from-value="0" data-to-value="100" data-increment="2" data-duration="1000"></span>
    1 segundo 0-100 incremento de 2
</div>
 
<div class='contador'>
    <span class="counter euro" data-from-value="0" data-to-value="100" data-increment="1" data-duration="2000"></span>
    2 segundos 0-100 incremento de 1
</div>
<div class='contador'>
    <span class="counter" data-from-value="0" data-to-value="100" data-increment="1" data-duration="3000"></span>
    3 segundos 0-100 incremento de 1
</div>
<div class='contador euro'>
    <span class="counter" data-from-value="0" data-to-value="1000" data-increment="100" data-duration="3000"></span>
    3 segundos 0-1000 incremento de 100
</div>
 
<script>
document.querySelectorAll(".counter").forEach(el => {
    // definimos la velocidad
    let speed=(el.dataset.duration/(el.dataset.toValue-el.dataset.fromValue))*(parseInt(el.dataset.increment) || 1);
 
    // mostramos el valor inicial
    el.innerHTML=el.dataset.fromValue;
 
    el.dataset.st=setInterval(el => {
        // incrementamos el valor actual
        let newValue=parseInt(el.innerHTML)+(parseInt(el.dataset.increment) || 1);
        el.innerHTML=newValue;
 
        if (newValue>=el.dataset.toValue) {
            // finalizamos el incremento
            el.innerHTML=el.dataset.toValue;
            clearInterval(el.dataset.st);
        }
    }, speed, el);
});
</script>
</body>



Comentarios sobre la versión: 1 (1)

9 de Abril del 2021
estrellaestrellaestrellaestrellaestrella
muchas gracias Joel voy a revisar el texto
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6999