Middle
Баннер үчүн структураны кантип уюштурууга болот?
sobes.tech AI
AIден жооп
Баннер HTML, CSS жана JavaScript колдонуу менен ишке ашырылышы мүмкүн. HTML түзүмү баннердин элементтерин аныктайт, CSS алардын көрүнүшүн аныктайт, ал эми JavaScript алардын жүрүм-турумун башкаруу үчүн колдонулат, мисалы, сүрөттөрдү алмаштыруу же анимация.
HTML түзүмү:
<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">Мурунку</button>
<button class="next-button">Кийинки</button>
</div>
<div class="banner-pagination">
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
banner-container: Бардык баннер элементтери үчүн контейнер.banner-image: Баннер сүрөттөрүнүн элементтери.activeклассы учурда көрсөтүлүп жаткан сүрөттү белгилейт.banner-controls: Навигация баскычтары үчүн контейнер.prev-button,next-button: Сүрөттөрдү алмаштыруу үчүн баскычтар.banner-pagination: Баракчалардын көрсөткүчтөрү үчүн контейнер.dot: Баракчанын көрсөткүчү.activeклассы учурдагы баракчаны көрсөтөт.
CSS стили:
.banner-container {
position: relative;
width: 100%;
overflow: hidden; /* Көрсөтүлбөгөн сүрөттөрдү жашыруу */
}
.banner-image {
position: absolute; /* Сүрөттөрдү бири үстүнө бири коюу */
top: 0;
left: 0;
width: 100%;
opacity: 0; /* Дефолт боюнча жашырылган */
transition: opacity 0.5s ease-in-out; /* Жумшак өтүү */
}
.banner-image.active {
opacity: 1; /* Активдүү сүрөттү көрсөтүү */
}
.banner-controls {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100%;
display: flex;
justify-content: space-between;
padding: 0 10px;
z-index: 1; /* сүрөттөрдүн үстүндө */
}
.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 (сүрөттөрдү алмаштыруу логикасынын мисалы):
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);
});
});
// Автоматтык алмаштыруу (каалоо боюнча)
// setInterval(nextImage, 5000);
Бул структура ийкемдүү жана настройкалоо мүмкүнчүлүгүн камсыздайт. Кошумча элементтер, мисалы, текст, шилтемелер, жүктөө көрсөткүчтөрү жана ар кандай анимация эффекттери кошулушу мүмкүн.