nou

fun with random number js css html

Sparisoma Viridi
4 mins read ·

Random number for CSS and HTML using JS

intro

To generate random number in JS Math.random() method can be used, which produces a pseudo-random floating point-number between 0 (inclusive) and 1 (exclusive) 1, which can later be processed to create certain random numbers, e.g. decimal with specified max or min-max range, integer with specified max or min-max range, and ones with specified inclusive 2. Beside the pseudo-random generator provided in Math object, there are also some alternatives, e.g. one supported by some browsers or create yourself some functions 3.

In this post results of using random number in JS is shown in HTML with support of CSS. HMTL is a markup language, CSS is a styling language, and JS is a programming language, where they are working together to render the interactive results displayed in a web browser 4. It is also assumed that you are already familiar with JS, CSS, and HTML.

button + textarea + div

As common elements there are at least button, textarea, and div elements. The first element trigger generating random number, the next shows the values, and the las is for displaying the result.

Above appearance can be produced using following code

{{< js >}}
let bt = document.createElement("button");
bt.innerHTML = "Run"
bt.style.float = "left";
bt.style.width = "50px";

let ta = document.createElement("textarea");
ta.style.overflowY = "scroll";
ta.style.width = "180px";
ta.style.height = "100px";
ta.style.float = "left";
ta.style.marginLeft = "4px";

let dv = document.createElement("div");
dv.style.border = "1px solid #888";
dv.style.height = "104px";
dv.style.float = "left";
dv.style.width = "320px";
dv.style.marginLeft = "4px";

js.appendChild(bt);
js.appendChild(ta);
js.appendChild(dv);

bt.addEventListener("click", function() {
  run(ta, dv)
});

function run(ta, dv) {
  ta.value = "run";
  dv.innerHTML = "run";
}
{{< /js >}}

and from this part forwards only additional code will be displyed to avoid redundancy, which are

function run(ta, dv) {
  ta.value = "run";
  dv.innerHTML = "run";
}

inside of run() function, where ta and dv are the output, which stand for textarea and div elements, respectively.

random floating-point numbers

Random numbers betweens 0 (inclusive) and 1 (exclusive) can be generated using Math.random() function.

Above results show 18 random numbers between 0 and 1, which is displayed in textarea with 3 decimal places, while in div with 5 decimal places. And following

function run(ta, dv) {
  dv.style.textAlign = "left";
  dv.style.fontSize = "15px";
  dv.innerHTML = "";
  ta.value = "";
  
  let N = 18;
  for(let i = 0; i < N; i++) {
    let x = Math.random();
    
    ta.value += x.toFixed(3);
    if(i < N-1) ta.value += ", ";
    
    dv.innerHTML += x.toFixed(5); 
    if(i < N-1) dv.innerHTML += ", ";
  }
}

is the code. Two first lines are for styling the div with left alignment and 15px font size. Then two lines for clearing the div and textarea are followed. A for loop generate random number Math.random() for 18 times. The function toFixed() will round the number to certain decimal places n, where n is the given argument.

random integer numbers

Integer numbers can be obtained from floating-point numbers by multiplying them first with certain number and then rounding them to the nearest integers.

And

function run(ta, dv) {
  dv.style.textAlign = "left";
  dv.style.fontSize = "15px";
  dv.innerHTML = "";
  ta.value = "";
  
  let N = 18;
  for(let i = 0; i < N; i++) {
    let x = Math.round(10 * Math.random());
    
    ta.value += x;
    if(i < N-1) ta.value += ", ";
    
    dv.innerHTML += x; 
    if(i < N-1) dv.innerHTML += ", ";
  }
}

is the code. Can you notice the differences with previous code? In order to make integer numbers

let x = Math.round(10 * Math.random());

it multiplies generated random numbers between 0 and 1 with 10 and then round them to the nearest integers, which are integer numbers 0, 1, .., 9, 10.

notes


  1. yajasvikhqmsg, “How to Generate a Random Number in JavaScript ?”, GeeksforGeeks, 31 Jan 2024, url https://www.geeksforgeeks.org/how-to-generate-a-random-number-in-javascript/ [20240410]. ↩︎

  2. Dionysia Lemonaki, “JavaScript Random Number – How to Generate a Random Number in JS”, freeCodeCamp, 3 Aug 2022, url https://www.freecodecamp.org/news/javascript-random-number-how-to-generate-a-random-number-in-js/ [20240410]. ↩︎

  3. Jessica Reuter Castrogiovanni, “Creating Javascript Random Numbers with Math.random()”, Udacity, 16 Apr 2021, url https://www.udacity.com/blog/2021/04/javascript-random-numbers.html [20240410]. ↩︎

  4. Abhinav Patel, “Relation Between HTML, CSS, JavaScript”, Medium, 9 Dec 2020, url https://medium.com/p/d8f2a4c954fe [20240410]. ↩︎

Tags: