#javascript #carousel #bootstrap-5
Вопрос:
Я прочитал документы javascript по bootstrap 5 carousel и просто тестирую его на простой карусели, показанной ниже. Я не использовал изображения для каждого слайда, а вместо этого div, чтобы я мог создать полный рабочий пример. Я также не использовал никаких атрибутов data-bs, поскольку хочу реализовать функциональность с помощью Java script
<!DOCTYPE html>
<!--
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
Click nbfs://nbhost/SystemFileSystem/Templates/ClientSide/html.html to edit this template
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div id="carousel" class="carousel slide">
<ol class="carousel-indicators">
<li id="i1" data-bs-target="#carousel" class="active"></li>
<li id="i2" data-bs-target="#carousel"></li>
<li id="i3" data-bs-target="#carousel"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<div style="width : 100% ; height : 300px ; background-color : red ; border : 1px solid black">
Item-1
</div>
<div class="carousel-caption">
<h3>Div 1</h3>
</div>
</div>
<div class="carousel-item">
<div style="width : 100% ; height : 300px ; background-color : green ; border : 1px solid black">
Item-2
</div>
<div class="carousel-caption">
<h3>Div 2</h3>
</div>
</div>
<div class="carousel-item">
<div style="width : 100% ; height : 300px ; background-color : yellow ; border : 1px solid black">
Item-3
</div>
<div class="carousel-caption">
<h3>Div 3</h3>
</div>
</div>
</div>
<a class="carousel-control-prev">
<div id="i4" class="carousel-control-prev-icon"></div>
</a>
<a class="carousel-control-next">
<div id="i5" class="carousel-control-next-icon"></div>
</a>
</div>
<script>
//To Display Any Errors Upon running the carousel functions
function debug(action)
{
try
{
action();
}
catch(err){window.alert(err);}
}
let carousel=bootstrap.Carousel.getOrCreateInstance
(
document.getElementById("carousel")
,{
interval : 2000,
wrap : true,
pause : "hover"
}
);
document.getElementById("i1").addEventListener("click",()=>debug(()=>carousel.to(0)));
document.getElementById("i2").addEventListener("click",()=>debug(()=>carousel.to(1)));
document.getElementById("i3").addEventListener("click",()=>debug(()=>carousel.to(2)));
document.getElementById("i4").addEventListener("click",()=>debug(()=>carousel.prev()));
document.getElementById("i5").addEventListener("click",()=>debug(()=>carousel.next()));
</script>
</body>
</html>
Каждая из функций carousel работает должным образом, за исключением двух проблем
- Часть инициализации карусели не работает, т.е. Интервал не составляет 2 секунды [на самом деле карусель вообще не начинает анимацию], а атрибуты наведения и паузы также не работают
- Функции to(), prev(), next() выполняются корректно только один раз, после чего они выдают эту ошибку
Любая помощь будет признательна