Как да използваме JavaScript за да създадем динамични уеб страници.

Как да използваме JavaScript за да създадем динамични уеб страници.
Photo by Sigmund / Unsplash

JavaScript е мощен програмен език, който може да се използва за създаване на динамични уеб страници.

  1. Смяна на текста и съдържанието на елементите
    JavaScript може да се използва за промяна на текста и съдържанието на елементите на уеб страницата. Например, ако имате елемент с id "header", можете да използвате следния код за да промените текста на заглавието:
document.getElementById("header").innerHTML = "Ново заглавие";

2. Промяна на стиловете на елементите
JavaScript може да се използва за промяна на стиловете на елементите на уеб страницата. Например, ако искате да промените цвета на фона на елемент с id "main", можете да използвате следния код:

document.getElementById("main").style.backgroundColor = "red";

3. Скриване и показване на елементите
JavaScript може да се използва за скриване и показване на елементите на уеб страницата. Например, ако искате да скриете елемент с id "sidebar", можете да използвате следния код:

document.getElementById("sidebar").style.display = "none";

Ако искате да покажете скрит елемент, можете да използвате следния код:

document.getElementById("sidebar").style.display = "block";

4. Обработка на събития
JavaScript може да се използва за обработка на събития като кликване на бутони, преместване на мишката, натискане на клавиши и други. Например, ако искате да изпълните определена функция, когато потребителят кликне върху бутон, можете да използвате следния код:

document.getElementById("myButton").addEventListener("click", function() {
  alert("Бутонът беше натиснат!");
});

5. Работа с форми
JavaScript може да се използва за работа с форми на уеб страницата. Например, ако искате да валидирате форма, преди да я изпратите, можете да използвате следния код:

function validateForm() {
  var x = document.forms["myForm"]["fname"].value
  if (x == "") {
	alert("Името не може да бъде празно!");
	return false;
  }
}

6. Валидация на форми
JavaScript може да се използва за валидация на формуляри на уеб страниците. Например, можете да използвате JavaScript за да проверите дали потребителите са въвели правилни стойности в полетата на формуляра, преди да ги изпратят.

<form onsubmit="return validateForm()">
  <label for="name">Име:</label>
  <input type="text" id="name" name="name">

  <label for="email">Имейл:</label>
  <input type="email" id="email" name="email">

  <input type="submit" value="Изпрати">
</form>

<script>
function validateForm() {
  var name = document.getElementById("name").value;
  var email = document.getElementById("email").value;
  if (name == "" || email == "") {
    alert("Моля, попълнете всички полета.");
    return false;
  }
}
</script>

7. Интерактивни елементи
JavaScript може да направи уеб страниците по-интерактивни, като добавя възможности за динамична промяна на елементите на страницата. Например, можете да използвате JavaScript, за да създадете динамични формуляри, като показвате или скривате определени полета в зависимост от избраните от потребителя опции.

<label for="type">Тип на автомобила:</label>
<select id="type" name="type" onchange="showFields()">
  <option value="car">Кола</option>
  <option value="truck">Камион</option>
  <option value="motorcycle">Мотоциклет</option>
</select>

<div id="truckFields" style="display:none;">
  <label for="loadCapacity">Товароподемност:</label>
  <input type="number" id="loadCapacity" name="loadCapacity">
</div>

<script>
function showFields() {
  var type = document.getElementById("type").value;
  if (type == "truck") {
    document.getElementById("truckFields").style.display = "block";
  } else {
    document.getElementById("truckFields").style.display = "none";
  }
}
</script>

Този код показва полето за товароподемност само когато потребителят избере опция "Камион" от падащото меню.

8. Анимации и ефекти

// Намираме всички елементи, които искаме да скрием или покажем
let elements = document.querySelectorAll(".my-element");

// Показваме елементите
function showElements() {
  elements.forEach(function(element) {
    element.style.opacity = "1"; // Задаваме прозрачност на 1, за да покажем елемента
    element.style.transition = "opacity 0.5s ease-in-out"; // Добавяме преходен ефект
  });
}

// Скриваме елементите
function hideElements() {
  elements.forEach(function(element) {
    element.style.opacity = "0"; // Задаваме прозрачност на 0, за да скрием елемента
    element.style.transition = "opacity 0.5s ease-in-out"; // Добавяме преходен ефект
  });
}

// По подразбиране скриваме всички елементи
hideElements();

// Добавяме event listener за бутон, който да показва или скрива елементите
let button = document.querySelector("#my-button");

button.addEventListener("click", function() {
  if (elements[0].style.opacity === "0") { // Проверка дали първия елемент е скрит
    showElements();
  } else {
    hideElements();
  }
});

В този пример използваме метода querySelectorAll() за да намерим всички елементи на страницата с клас "my-element". След това добавяме функции за показване и скриване на тези елементи, като задаваме прозрачността на 1 или 0 и добавяме преходен ефект с CSS свойството "transition". В края на скрипта добавяме event listener за бутон, който да показва или скрива елементите на страницата.

Този код може да се модифицира и да се използва за да създадем различни преходни ефекти на елементите на страницата.

9. Използване на AJAX

HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>AJAX Example</title>
</head>
<body>
  <h1>AJAX Example</h1>
  <div id="output"></div>
  <button id="btn">Get Data</button>
  <script src="script.js"></script>
</body>
</html>

JavaScript (в script.js):

const btn = document.getElementById('btn');
const output = document.getElementById('output');

btn.addEventListener('click', () => {
  // създаваме нов XMLHttpRequest обект
  const xhr = new XMLHttpRequest();

  // задаваме типа на заявката и URL-а на API
  xhr.open('GET', 'https://example.com/posts/1');

  // задаваме функция, която да се извика при получаване на отговор от сървъра
  xhr.onload = function() {
    // проверяваме дали заявката е била успешна
    if (xhr.status === 200) {
      // преобразуваме получените данни от JSON формат в JavaScript обект
      const data = JSON.parse(xhr.responseText);
      // извеждаме получените данни на страницата
      output.innerHTML = `
        <p>ID: ${data.id}</p>
        <p>Title: ${data.title}</p>
        <p>Description : ${data.description}</p>
      `;
    } else {
      // в случай на грешка извеждаме съобщение за грешка
      output.innerHTML = `<p>There was an error loading the data.</p>`;
    }
  };

  // изпращаме заявката към сървъра
  xhr.send();
});

Този код използва XMLHttpRequest обекта за да изпрати заявка към API и получава отговор от сървъра. В случай на успешна заявка, получените данни отговарят на формата на JSON обект, който се преобразува в JavaScript обект чрез JSON.parse(). След това получените данни се извеждат на страницата чрез innerHTML на output елемента. В случай на грешка при заявката, се извежда съобщение за грешка.

Кратък пример:

// Създаване на нов обект XMLHttpRequest
const xhr = new XMLHttpRequest();

// Определяне на типа на HTTP заявката и URL адреса, към който да се изпрати заявката
xhr.open('GET', 'https://example.com/data.json');

// Добавяне на функция, която да се изпълни при успешно зареждане на данните
xhr.onload = () => {
  if (xhr.status === 200) {
    const responseData = JSON.parse(xhr.responseText);
    // Действия, които да се изпълнят с получените данни
  }
};

// Изпращане на заявката към уеб сървъра
xhr.send();