User:Toad64/Homepage

Revision as of 16:44, 26 May 2026 by Toad64 (talk | contribs) (replaced old .js code display with new .js)

Javascript code for herocards

Below here is the javascript code that is used for the HeroCards seen on the homepage:

document.querySelectorAll('.HeroCard').forEach(function(el) {
  el.style.transition = 'none';
  el.style.transformStyle = 'preserve-3d';
  el.style.willChange = 'transform';

  var animFrame;
  var current = { x: 0, y: 0 };
  var target = { x: 0, y: 0 };
  var mouseX = 0, mouseY = 0;
  var isOver = false;
  var rect = {};
  
  var updateMouse = function(e){
  	mouseX = e.clientX;
    mouseY = e.clientY;
  }

  var tick = function() {
    var cx = rect.left + rect.width / 2;
    var cy = rect.top + rect.height / 2;
    var dx = (mouseX - cx) / (rect.width / 2);
    var dy = (mouseY - cy) / (rect.height / 2);

    target.x = dy * -12;
    target.y = dx * 12;

    current.x += (target.x - current.x) * 0.12;
    current.y += (target.y - current.y) * 0.12;

    el.style.transform = 'perspective(400px) rotateX(' + current.x + 'deg) rotateY(' + current.y + 'deg) scale(' + (isOver ? 1.05 : 1) + ')';

    animFrame = requestAnimationFrame(tick);
  };
  
  el.addEventListener('mouseenter', function() {
    rect = el.getBoundingClientRect(); // Measure ONCE
    document.addEventListener('mousemove', updateMouse);
    animFrame = requestAnimationFrame(tick); // Ignition
  });

  el.addEventListener('mouseleave', function() {
    document.removeEventListener('mousemove', updateMouse);
    cancelAnimationFrame(animFrame); // Kill the engine
    
    el.style.transition = 'transform 0.5s ease-out'; 
    el.style.transform = 'perspective(400px) rotateX(0deg) rotateY(0deg) scale(1)';
    
    setTimeout(function() { el.style.transition = 'none'; }, 500);
  });
});

You can see this code in action by clicking Here (desktop required).

Heroes
 

Hero Labs

Abrams

 

Hero Labs

Apollo

 

Hero Labs

Bebop

 

Hero Labs

Billy

 

Hero Labs

Calico

 

Hero Labs

Celeste

 

Hero Labs

The Doorman

 

Hero Labs

Drifter

 

Hero Labs

Dynamo

 

Hero Labs

Graves

 

Hero Labs

Grey Talon

 

Hero Labs

Haze

 

Hero Labs

Holliday

 

Hero Labs

Infernus

 

Hero Labs

Ivy

 

Hero Labs

Kelvin

 

Hero Labs

Lady Geist

 

Hero Labs

Lash

 

Hero Labs

McGinnis

 

Hero Labs

Mina

 

Hero Labs

Mirage

 

Hero Labs

Mo & Krill

 

Hero Labs

Paige

 

Hero Labs

Paradox

 

Hero Labs

Pocket

 

Hero Labs

Rem

 

Hero Labs

Seven

 

Hero Labs

Shiv

 

Hero Labs

Silver

 

Hero Labs

Sinclair

 

Hero Labs

Venator

 

Hero Labs

Victor

 

Hero Labs

Vindicta

 

Hero Labs

Viscous

 

Hero Labs

Vyper

 

Hero Labs

Warden

 

Hero Labs

Wraith

 

Hero Labs

Yamato