Advertisement
here2share

$ JS_Moving_Gradient.py

Dec 17th, 2022 (edited)
1,017
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2. <head>
  3.     <title>Moving Gradient</title>
  4. </head>
  5. <body>
  6.     <canvas id="stage" width="800" height="600" style="background-color: #faFF59;"></canvas>
  7.  
  8.     <script>
  9.         const COLORS = [
  10.         "(45, 74, 227)", // blue
  11.         "(250, 255, 89)", // yellow
  12.         "(255, 104, 248)", // purple
  13.         "(44, 209, 252)", // skyblue
  14.         "(54, 233, 84)", // green
  15.         ];
  16.  
  17.         const stage = document.getElementById("stage");
  18.         const ctx = stage.getContext("2d");
  19.         const stageWidth = stage.width;
  20.         const stageHeight = stage.height;
  21.  
  22.         let totalParticles = 200;
  23.         let particles = [];
  24.         let maxRadius = 80;
  25.         let minRadius = 10;
  26.         let curColor = 0;
  27.  
  28.         function createParticles() {
  29.             // Use the global keyword to access the global variable particles
  30.             const item = {
  31.                 x: Math.floor(Math.random() * stageWidth) + 1,
  32.                 y: Math.floor(Math.random() * stageHeight) + 1,
  33.                 radius: minRadius + Math.random() * (maxRadius - minRadius),
  34.                 color: COLORS[curColor],
  35.                 vx: Math.random() * Math.random() * Math.random() > 0.5 ? -4 : 4,
  36.                 vy: Math.random() * Math.random() * Math.random() > 0.5 ? -4 : 4,
  37.                 sinValue: Math.random()
  38.             };
  39.             curColor = (curColor + 1) % COLORS.length;
  40.             particles.push(item);
  41.         }
  42.  
  43.         for (let i = 0; i < totalParticles; i++) {
  44.             createParticles();
  45.         }
  46.  
  47.         function drawParticles() {
  48.           // Loop through each particle and draw it on the canvas
  49.           for (let i = 0; i < particles.length; i++) {
  50.             const particle = particles[i];
  51.  
  52.             // Set the fill style to the particle color
  53.             ctx.fillStyle = particle.color;
  54.  
  55.             // Draw a circle at the particle's position
  56.             ctx.beginPath();
  57.             ctx.arc(particle.x, particle.y, particle.radius, 0, 2 * Math.PI, false);
  58.             ctx.fill();
  59.           }
  60.         }
  61.  
  62.         function animate() {
  63.             // Clear the canvas
  64.             ctx.clearRect(0, 0, stageWidth, stageHeight);
  65.  
  66.             // Loop through each particle and update its position
  67.             for (let i = 0; i < particles.length; i++) {
  68.                 const particle = particles[i];
  69.  
  70.                 // Update the sin value and radius of the particle
  71.                 particle.sinValue += 0.01;
  72.                 particle.radius += Math.sin(particle.sinValue);
  73.  
  74.                 // Update the position of the particle
  75.                 particle.x += particle.vx;
  76.                 particle.y += particle.vy;
  77.  
  78.                 // Check if the particle has reached the edge of the screen
  79.                 if (particle.x < 0 || particle.x > stageWidth) {
  80.                     // Reverse the horizontal velocity of the particle
  81.                     particle.vx = -particle.vx;
  82.  
  83.                     // Update the position of the particle to keep it within the screen
  84.                     particle.x = Math.max(0, Math.min(particle.x, stageWidth));
  85.                 }
  86.                 if (particle.y < 0 || particle.y > stageHeight) {
  87.                     // Reverse the vertical velocity of the particle
  88.                     particle.vy = -particle.vy;
  89.  
  90.                     // Update the position of the particle to keep it within the screen
  91.                     particle.y = Math.max(0, Math.min(particle.y, stageHeight));
  92.                 }
  93.             }
  94.  
  95.             // Draw the particles on the canvas
  96.             drawParticles();
  97.  
  98.             // Call the animate function again on the next frame
  99.             requestAnimationFrame(animate);
  100.         }
  101.  
  102.         // Start the animation loop
  103.         animate();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement