JavaScript - Metodo para colocar un "delay" entre instrucciones

 
Vista:
Imágen de perfil de Alex
Val: 1
Ha disminuido su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Metodo para colocar un "delay" entre instrucciones

Publicado por Alex (1 intervención) el 27/03/2020 04:24:21
Quisiera saber si existe algun método para ejecutar una funcion pasado cierto tiempo. Por ejemplo, en el codigo que esta mas abajo lo que yo queria hacer era crear un cuadro donde el degradado vaya cambiando de posicion. O sea, el azul que empieza en la derecha pasaria a la izquierda y el blanco que empieza en la izquierda terminaria en la derecha. Todo esto cambiando progresivamente en un intervalo de tiempo.
El codigo funciona (creo) pero no se como hacer para crear ese "tiempo".
Aca esta el código: Por cierto, utilizo JQuery para JavaScript. Ya probe el delay() y no me funciona y tambien probe el setTimeout() y no me funciona. Si creen que es con eso, porfavor escriban el codigo completo de JavaScript de como lo harian ustedes.




HTML


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=no"/>
        <title> Colorines </title>
        <link rel="stylesheet" type="text/css" href="estilos01.css">
        <script src="jquery.js" type="text/javascript"></script>
        <script src="guion01.js" type="text/javascript"></script>
    </head>
    <body>
 
        <div id="colores">
            <h3> Texto Normal </h3>
        </div>
 
    </body>
</html>

CSS

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
*{
    margin: 0px;
    padding: 0px;
}
 
body{
    background-color: cadetblue;
}
 
#colores{
    width: 400px;
    height: 400px;
    border: 3px solid black;
    border-radius: 5px;
    background: linear-gradient(to left, rgb(0,0,255), rgb(255,255,255));
    margin: 0px auto;
    margin-top: 300px;
}
 
#colores h3{
    text-align: center;
    line-height: 400px;
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    color: red;
    text-shadow: 0px 0px 5px yellow;
}
JAVASCRIPT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(document).ready(function(){
    var rgb1 = [0,0,255]; // Blue
    var rgb2 = [255,255,255];  // White
    var bg;
 
    for(var i=0;i<=255;i++){
        rgb1[0] = i;
        rgb1[1] = i;
        rgb2[0] = 255 - i;
        rgb2[1] = 255 - i;
        bg= "linear-gradient(to left , rgb(" + rgb1[0] + "," + rgb1[1] + "," + rgb1[2] + ")," +  "rgb(" + rgb2[0] + "," + rgb2[1] + "," + rgb2[2] + ")";
 
        window.setTimeout(function(){
            $("#colores").css("background",bg);
        }, 20);
 
    }
 
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Metodo para colocar un "delay" entre instrucciones

Publicado por ScriptShow (692 intervenciones) el 28/03/2020 17:03:37
Saludos,

hay opciones con CSS3 que pueden resultar sencillas, adaptables con pequeños ajustes...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<style type="text/css">
#rainbow {
width: 50%;
height: 50%;
background-color: #FFFFFF;
background-image: linear-gradient(to left, rgba(0,0,255,0) 0%, rgba(255,255,255,1) 100%);
-webkit-animation: rainbow 18s ease infinite;
animation: rainbow 18s ease infinite;
}
 
@keyframes rainbow {
00.00% {background-color: #FF0000;}
16.66% {background-color: #FFFF00;}
33.33% {background-color: #00FF00;}
49.99% {background-color: #00FFFF;}
66.66% {background-color: #0000FF;}
83.33% {background-color: #FF00FF;}
99.99% {background-color: #FF0000;}
}
</style>
 
<div id="rainbow"></div>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar