JSFiddle - React, Tailwind, and code Playground

by mrjordy

HTML

<div class="heroContainer">
  <div class="heroStars">
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStar"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris heroStarLight"></div>
    <div class="debris...

CSS

.heroContainer {
    height: 560px;
    position: relative;
    background: linear-gradient(to top, #222 60%, black);
    overflow: hidden;
}
.heroTop {
  height: 210px;
}
.heroEarth {
  background: url('https://mp-dev.cloud.navy.mil/homeHero.png');
  height: 350px;
  width: 100vw;
  background-size: cover;
  background-position-x: center;
  background-position-y: -2px;
  position: absolute;
  z-index: 2;
}

.heroOverlay {
  background: rgba(0, 83, 148, 0.32);
  position: absolute;
  z-index: 3;
  width: 100%;
  height: 100%;
}
.nccsLogo {
    background: url('https://mp-dev.cloud.navy.mil/nccsLogo_130.png');
    position: absolute;
    margin-left: calc(50vw - 80px);
    margin-top: 70px;
    width: 130px;
    height: 130px;
    z-index: 2;
}

.heroStars{
  position: absolute;
  width: 100vw;
  height: 400px;
  z-index: 1;
}
.heroStar {
    position: absolute;
    background: rgba(255, 230, 230, 0.3);
    display: block;
    width: 2px;
    height: 2px;
    border-radius: 5px;
    box-shadow: 0 0 3px 4px rgba(255, 230, 230, 0.03);
}
.heroStarLight {
    position: absolute;
    top: 100px;
    left: 100px;
    background: rgba(255, 230, 230, 0.2);
    display: block;
    width: 1px;
    height: 1px;
    border-radius: 5px;
    box-shadow: 0 0 3px 4px rgba(255, 230, 230, 0.01);
}
.heroText {
    z-index: 4;
    position: absolute;
    margin-top: 60px;
    text-align: center;
    width: 700px;
    margin-left: calc(50vw - 365px);
}

.trashspacer {height: 1000vh;}
.whiteText{ color: #fff;}

span.h1 {font-size: 32px; font-weight: bold;}
.lText {font-size: 16px; font-weight: bold;}
.mText, p {font-size: 15px;}
.sText {font-size: 12px;}

JavaScript

// collect all the divs
var divs = document.getElementsByClassName('debris');
// get window width and height
var winWidth = window.innerWidth;
var winHeight = 800;

// i stands for "index". you could also call this banana or haircut. it's a variable
for ( var i=0; i < divs.length; i++ ) {
 	
    // shortcut! the current div in the list
    var thisDiv = divs[i];
    
    // get random numbers for each element
    randomTop = getRandomNumber(0, winHeight);
    randomLeft = getRandomNumber(0, winWidth);
    
    // update top and left position
    thisDiv.style.top = randomTop +"px";
    thisDiv.style.left = randomLeft +"px";
    
}

// function that returns a random number between a min and max
function getRandomNumber(min, max) {
    
  return Math.random() * (max - min) + min;
    
}