Middle
Banner uchun tuzilmani qanday tashkil qilish mumkin?
sobes.tech AI
AIdan javob
HTML, CSS va JavaScript yordamida bannerni amalga oshirish mumkin. HTML tuzilishi banner elementlarini belgilaydi, CSS ularning ko‘rinishini belgilaydi va JavaScript ularning xulq-atvorini, masalan, rasmni almashtirish yoki animatsiyalarni boshqaradi.
HTML tuzilishi:
<div class="banner-container">
<img src="image1.jpg" alt="Banner Image 1" class="banner-image active">
<img src="image2.jpg" alt="Banner Image 2" class="banner-image">
<img src="image3.jpg" alt="Banner Image 3" class="banner-image">
<div class="banner-controls">
<button class="prev-button">Prev</button>
<button class="next-button">Next</button>
</div>
<div class="banner-pagination">
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
banner-container: Barcha banner elementlari uchun konteyner.banner-image: Banner rasm elementlari.activesinfi hozirda ko‘rsatilayotgan rasmni bildiradi.banner-controls: Navigatsiya tugmalari uchun konteyner.prev-button,next-button: Rasmni o‘zgartirish tugmalari.banner-pagination: Sahifa indikatorlari (nuqtalar) uchun konteyner.dot: Sahifa indikator.activesinfi hozirgi sahifani ko‘rsatadi.
CSS uslublari:
.banner-container {
position: relative;
width: 100%;
overflow: hidden; /* Ko‘rsatilmaydigan rasmlarni yashiradi */
}
.banner-image {
position: absolute; /* Rasmni bir-birining ustiga joylashtiradi */
top: 0;
left: 0;
width: 100%;
opacity: 0; /* Rasm default tarzda yashiriladi */
transition: opacity 0.5s ease-in-out; /* Yumuq o'tish */
}
.banner-image.active {
opacity: 1; /* Faol rasmni ko‘rsatadi */
}
.banner-controls {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100%;
display: flex;
justify-content: space-between;
padding: 0 10px;
z-index: 1; /* Rasm ustida */
}
.banner-pagination {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 5px;
z-index: 1;
}
.dot {
width: 10px;
height: 10px;
background-color: #ccc;
border-radius: 50%;
cursor: pointer;
}
.dot.active {
background-color: #333;
}
JavaScript (rasmni almashtirish logikasi misoli):
const images = document.querySelectorAll('.banner-image');
const dots = document.querySelectorAll('.dot');
const prevButton = document.querySelector('.prev-button');
const nextButton = document.querySelector('.next-button');
let currentIndex = 0;
function showImage(index) {
images.forEach((img, i) => {
if (i === index) {
img.classList.add('active');
} else {
img.classList.remove('active');
}
});
dots.forEach((dot, i) => {
if (i === index) {
dot.classList.add('active');
} else {
dot.classList.remove('active');
}
});
}
function nextImage() {
currentIndex = (currentIndex + 1) % images.length;
showImage(currentIndex);
}
function prevImage() {
currentIndex = (currentIndex - 1 + images.length) % images.length;
showImage(currentIndex);
}
nextButton.addEventListener('click', nextImage);
prevButton.addEventListener('click', prevImage);
dots.forEach((dot, index) => {
dot.addEventListener('click', () => {
currentIndex = index;
showImage(currentIndex);
});
});
// Ixtiyoriy: avtomatik o'tish
// setInterval(nextImage, 5000);
Ushbu tuzilma banner uchun moslashuvchanlik va sozlash imkoniyatini taqdim etadi. Qo‘shimcha elementlar, masalan, matnlar, havolalar, yuklanish indikatorlari va turli animatsiya effektlarini qo‘shish mumkin.