Сегодня вы узнаете, как создать нумирацию на страницы, используя HTML CSS и JavaScript. В дополнение к разбивке на страницы, также будет включена проверка кнопок и анимации.
Возможно, вы видели в конце веб-сайта, что есть раздел разбивки на страницы, который используется для перехода на следующую веб-страницу веб-сайта. Знаете ли вы, что мы можем создать эту разбивку на страницы, используя HTML CSS и JavaScript?
Я бы настоятельно рекомендовал вам посмотреть видеоурок по созданию этой разбивки на страницы, потому что вам будет проще создавать эту разбивку на страницы шаг за шагом.
HTML КОД:
<!-- Fontawesome CDN Link -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" />
<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;
}
JAVASCRIPT КОД:
// 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;
});
0 Комментарии