Tvorba dynamického a interaktivního gridu s rozšiřujícími se kartami

Nová verze interaktivního gridového layoutu s kartami, které se při najetí myší dynamicky zvětšují. Tento moderní a responzivní design je ideální pro zobrazení vizuálních prvků, jako jsou třeba hudební akce.

Funkce dynamicky vytváří prvky gridu podle velikosti obrazovky a zajistí, že layout je plně responzivní.

function createItems() {
  const numColumns = 40; // Počet čtverců na řádku
  const itemSize = window.innerWidth / numColumns; // Velikost jednoho čtverce
  const numRows = Math.ceil(window.innerHeight / itemSize); // Počet řádků podle výšky obrazovky
  const totalItems = numColumns * numRows; // Celkový počet čtverců

  wrapper.style.gridTemplateColumns = `repeat(${numColumns}, 1fr)`; // Nastavení počtu sloupců
  wrapper.innerHTML = ""; // Vyčištění wrapperu

  for (let i = 0; i < totalItems; i++) {
    const item = document.createElement("div");
    item.classList.add("item");
    wrapper.appendChild(item);
  }
}
function updateShadowPosition(e) {
  const shadowSize = parseInt(getComputedStyle(root).getPropertyValue("--shadow-size"), 10);
  const x = e.clientX - wrapper.getBoundingClientRect().x;
  const y = e.clientY - wrapper.getBoundingClientRect().y;

  root.style.setProperty("--shadow-left", `${x - shadowSize / 2}px`);
  root.style.setProperty("--shadow-top", `${y - shadowSize / 2}px`);
}

Comments

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *