Сегодня вы узнаете, как создать нумирацию на страницы, используя HTML CSS и jаvascript. В дополнение к разбивке на страницы, также будет включена проверка кнопок и анимации.
Возможно, вы видели в конце веб-сайта, что есть раздел разбивки на страницы, который используется для перехода на следующую веб-страницу веб-сайта. Знаете ли вы, что мы можем создать эту разбивку на страницы, используя HTML CSS и jаvascript?
Я бы настоятельно рекомендовал вам посмотреть видеоурок по созданию этой разбивки на страницы, потому что вам будет проще создавать эту разбивку на страницы шаг за шагом.
Вы можете посмотреть видео демонстрацию, попробовать сверстать самому по видео или скачать архив с готовым кодом. Если это видео оказалось для вас полезным, оставьте комментарий со своими мыслями или вопросами. Ваши отзывы помогают нам создавать более ценный контент.
В архиве находится:
- Исходные файлы HTML
- Исходные файлы CSS
- Исходные файлы jаvascript
- Иконки шрифтов
- Файлы библиотеки и плагинов
Fontawesome
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" />
HTML КОД:
<div class="container">
<button class="button"id="startBtn" disabled>
<i class="fa-solid fa-angles-left"></i>
</button>
<button class="button prevNext"id="prev" disabled>
<i class="fa-solid fa-angle-left"></i>
</button>
<div class="links">
<a href="#" class="link active">1</a>
<a href="#" class="link">2</a>
<a href="#" class="link">3</a>
<a href="#" class="link">4</a>
<a href="#" class="link">5</a>
</div>
<button class="button prevNext" id="next">
<i class="fa-solid fa-angle-right"></i>
</button>
<button class="button" id="endBtn">
<i class="fa-solid fa-angles-right"></i>
</button>
</div>
CSS КОД:
.container,
.button,
.links,
.link {
display: flex;
align-items: center;
justify-content: center;
}
.container {
padding: 20px;
border-radius: 8px;
column-gap: 12px;
background: #fff;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}
.button {
border: none;
}
.button i {
pointer-events: none;
}
.button:disabled {
color: #b3b3b3;
pointer-events: none;
}
.button,
.link {
height: 45px;
width: 45px;
font-size: 20px;
color: #666666;
background-color: #f2f2f2;
border-radius: 6px;
cursor: pointer;
}
.links {
column-gap: 12px;
}
.link {
font-weight: 500;
text-decoration: none;
}
.button:hover,
.link:hover {
color: #fff;
background: #4070f4;
}
.link.active {
color: #fff;
background: #4070f4;
}
jаvascript КОД:
// Selecting DOM elements
const startBtn = document.querySelector("#startBtn"),
endBtn = document.querySelector("#endBtn"),
prevNext = document.querySelectorAll(".prevNext"),
numbers = document.querySelectorAll(".link");
// Setting an initial step
let currentStep = 0;
// Function to update the button states
const updateBtn = () => {
// If we are at the last step
if (currentStep === 4) {
endBtn.disabled = true;
prevNext[1].disabled = true;
} else if (currentStep === 0) {
// If we are at the first step
startBtn.disabled = true;
prevNext[0].disabled = true;
} else {
endBtn.disabled = false;
prevNext[1].disabled = false;
startBtn.disabled = false;
prevNext[0].disabled = false;
}
};
// Add event listeners to the number links
numbers.forEach((number, numIndex) => {
number.addEventListener("click", (e) => {
e.preventDefault();
// Set the current step to the clicked number link
currentStep = numIndex;
// Remove the "active" class from the previously active number link
document.querySelector(".active").classList.remove("active");
// Add the "active" class to the clicked number link
number.classList.add("active");
updateBtn(); // Update the button states
});
});
// Add event listeners to the "Previous" and "Next" buttons
prevNext.forEach((button) => {
button.addEventListener("click", (e) => {
// Increment or decrement the current step based on the button clicked
currentStep += e.target.id === "next" ? 1 : -1;
numbers.forEach((number, numIndex) => {
// Toggle the "active" class on the number links based on the current step
number.classList.toggle("active", numIndex === currentStep);
updateBtn(); // Update the button states
});
});
});
// Add event listener to the "Start" button
startBtn.addEventListener("click", () => {
// Remove the "active" class from the previously active number link
document.querySelector(".active").classList.remove("active");
// Add the "active" class to the first number link
numbers[0].classList.add("active");
currentStep = 0;
updateBtn(); // Update the button states
endBtn.disabled = false;
prevNext[1].disabled = false;
});
// Add event listener to the "End" button
endBtn.addEventListener("click", () => {
// Remove the "active" class from the previously active number link
document.querySelector(".active").classList.remove("active");
// Add the "active" class to the last number link
numbers[4].classList.add("active");
currentStep = 4;
updateBtn(); // Update the button states
startBtn.disabled = false;
prevNext[0].disabled = false;
});