Водич за веб програмере

Глатко померање је техника која се користи у веб развоју за стварање флуидног искуства померања за кориснике. Побољшава навигацију унутар веб странице тако што анимира кретање померања уместо подразумеваног наглог скока.

Овај свеобухватни водич за веб програмере ће вам помоћи да примените глатко померање користећи ЈаваСцрипт.

Глатко померање је када веб страница глатко скролује до жељеног одељка, уместо да тренутно скаче тамо. Ово чини искуство померања пријатнијим и неприметнијим за корисника.

Предности глатког померања

Глатко померање може да побољша корисничко искуство веб странице на неколико начина:

  • Побољшава визуелну привлачност елиминисањем наглих и наглих скокова померања, додајући дашак елеганције.
  • Подстиче ангажовање корисника пружајући флуидно и беспрекорно искуство померања. Ово, заузврат, мотивише кориснике да даље истражују садржај.
  • На крају, глатко померање олакшава навигацију корисницима, посебно када се ради о дугачким веб страницама или кретању између различитих одељака.

Да бисте применили глатко померање, можете да измените подразумевано понашање померања користећи ЈаваСцрипт.

ХТМЛ структура

Прво направите потребне елементе за означавање за различите оквире за приказ и навигацију за померање између њих.

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

<head>
 <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="https://wilku.top/a-guide-for-web-developers/./style.css" />
  <title>Smooth Scrolling Guide for Web Developers</title>
</head>

<body>
  <nav>
    <ul>
      <li><a href="#section1">Section 1</a></li>
      <li><a href="#section2">Section 2</a></li>
      <li><a href="#section3">Section 3</a></li>
    </ul>
  </nav>

  <section id="section1">
    <h2>Section 1</h2>
  </section>

  <section id="section2">
    <h2>Section 2</h2>
  </section>

  <section id="section3">
    <h2>Section 3</h2>
  </section>

  <script src="https://wilku.top/a-guide-for-web-developers/./script.js"></script>
</body>

</html>

Овај ХТМЛ се састоји од траке за навигацију која садржи три ознаке сидра. Атрибут хреф сваког сидра специфицира јединствени идентификатор циљног одељка (нпр. одељак1, одељак2, одељак3). Ово осигурава да свака веза на коју кликнете води до одговарајућег циљног елемента.

ЦСС Стилинг

Затим примените неки ЦСС како бисте страницу учинили видљиво привлачном и организованом. Додајте следеће у стиле.цсс:

 * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

nav {
  background: #fff;
  box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.25);
  position: sticky;
  top: 0;
  padding: 30px;
}

nav ul {
  display: flex;
  gap: 10px;
  justify-content: center;
}

nav ul li {
  list-style: none;
}

nav ul li a {
  border-radius: 5px;
  border: 1.5px solid #909090;
  text-decoration: none;
  color: #333;
  padding: 10px 20px;
}

section {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

Ово ће приказати везе као ред дугмади и сваки одељак као елемент пуне висине. Али приметите како клик на везу доводи до тога да прегледач тренутно скочи на одговарајући одељак, без анимације.

Имплементација ЈаваСцрипт

У другом случају, да бисте додали глатку анимацију када кликнете на ознаку сидра, користите метод сцроллИнтоВиев(). Метода сцроллИнтоВиев() је уграђени ЈаваСцрипт метод класе Елемент који вам омогућава да померате елемент у видљиво подручје прозора претраживача.

Када позовете овај метод, претраживач прилагођава позицију померања контејнера елемента (као што је прозор или контејнер који се може померати) да би елемент био видљив.

Додајте свој ЈаваСцрипт код у датотеку сцрипт.јс. Почните тако што ћете слушати да ли ће се покренути догађај ДОМЦонтентЛоадед пре него што урадите било шта друго. Ово осигурава да се повратни позив покреће само када је ДОМ потпуно учитан и спреман за манипулацију.

 document.addEventListener("DOMContentLoaded", makeLinksSmooth); 

Затим дефинишите функцију макеЛинксСмоотх(). Почните тако што ћете изабрати ознаке сидра у навигацији, пошто ћете желети да промените њихово понашање. Затим пређите преко сваке везе и додајте слушалац догађаја за догађај клика.

 function makeLinksSmooth() { 
  const navLinks = document.querySelectorAll("nav a");

  navLinks.forEach((link) => {
    link.addEventListener("click", smoothScroll);
  });
}

Коначно, дефинишите функцију смоотхСцролл() која узима објекат слушаоца догађаја. Позовите превентДефаулт() да бисте осигурали да прегледач не изврши своју подразумевану радњу када кликнете на везу. Код који следи ће га заменити.

Узмите хреф вредност тренутне ознаке сидра и сачувајте је у променљивој. Та вредност треба да буде ИД циљног одељка, са префиксом „#“, па је користите да изаберете елемент одељка преко куериСелецтор(). Ако је таргертЕлемент присутан, покрените његов метод сцроллИнтоВиев и проследите „глатко“ понашање у параметру објекта да бисте довршили ефекат.

 function smoothScroll(e) {
  e.preventDefault();
  const targetId = this.getAttribute("href");
  const targetElement = document.querySelector(targetId);

  if (targetElement) {
    targetElement.scrollIntoView({ behavior: "smooth", });
  }
}

Уз то, ваша готова веб страница ће се глатко померати до сваког одељка када кликнете на везу:

Да бисте додатно побољшали искуство глатког померања, можете фино подесити одређене аспекте.

Подешавање положаја померања

Можете подесити вертикални положај померања користећи својство блока аргумента подешавања. Користите вредности као што су „почетак“, „центар“ или „крај“ да бисте идентификовали део циљног елемента до којег треба да скролујете:

 targetElement.scrollIntoView({ behavior: "smooth", block: "end" }); 

Додавање ефеката ублажавања

Примените ефекте ублажавања на анимацију померања да бисте створили природнији и визуелно привлачнији прелаз. Функције ублажавања, као што су олакшавање уласка, ослобађање или прилагођене кубно-безиер криве могу да контролишу убрзање и успоравање кретања померања. Можете користити прилагођену функцију времена са ЦСС својством понашања померања или ЈаваСцрипт библиотеком као што је „глатко померање“ да бисте постигли исти резултат.

  
html {
  scroll-behavior: smooth;

  
  scroll-behavior: cubic-bezier(0.42, 0, 0.58, 1);
}

Уверите се да ваша примена глатког померања ради доследно у различитим прегледачима. Тестирајте и решите све недоследности или недоследности које се могу појавити у вези са прегледачем.

Можете користити веб локацију као што је Могу ли да користим да тестирате подршку претраживача приликом израде. Размислите о коришћењу ЈаваСцрипт библиотеке или полифила да бисте обезбедили компатибилност између прегледача и обезбедили беспрекорно искуство за све кориснике.

Глатко померање додаје додир елеганције и побољшава корисничко искуство стварањем течног и визуелно пријатног ефекта померања. Пратећи кораке наведене у овом водичу, веб програмери могу да имплементирају глатко померање користећи ЈаваСцрипт.

Фино подешавање понашања померања, додавање ефеката ублажавања и обезбеђивање компатибилности између претраживача додатно ће побољшати искуство глатког померања, чинећи ваше веб странице привлачнијим и пријатнијим за навигацију.