스크롤 시 특정 위치에서 postion fixed가 되는 영역

UI

  • scroll
  • fixed

2023-05-02 09:32

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./index.css">
  <title>Fast Bank</title>
</head>

<body>
  <main>
    <div id="bank-beyond-wrapper">
      <div id="bank-beyond">
        <img width="315" src="./05-text.png" alt="sample text">
      </div>
    </div>
    <div id="white-wrapper">
    </div>
  </main>
</body>
html
function centerElement(elementId) {
  const element = document.getElementById(elementId);
  const parent = element.parentElement;

  if (window.scrollY > parent.offsetTop - ((document.documentElement.clientHeight - element.offsetHeight) / 2)) {
    element.style.position = "fixed";
    element.style.top = "50%"
    element.style.left = "50%"
    element.style.transform = "translate(-50%, -50%)"

  }
  else {
    element.style.position = "relative"
    element.style.top = "initial"
    element.style.left = "initial"
    element.style.transform = "initial"
  }
}


window.addEventListener("scroll", () => {
  centerElement("bank-beyond")
})
javascript