1)我需要构建一个滑块(轮播),该滑块应基于从API调用返回的数据。我需要提取3个值。 image
,title
和description
。
2)在每张幻灯片上添加一个计数器,以便用户可以看到当前的幻灯片编号。
它必须是image
,title
和description
(在每张幻灯片上都是从JSON提取的)。
请帮助。
这是我自己的项目。我已经尝试过其他库,但是在将数据推送到滑块时遇到了问题。 (在滑块中显示帖子)
jQuery
var myJSON = 'https://api.myjson.com/bins/152ni8';
$.getJSON('myJSON, { get_param: 'value' }, function(data) {
$.each(data, function(index, element) {
$('body').append($('<img>', {
}));
});
});
HTML
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-80" src="..." alt="First slide">
<div class="carousel-caption d-none d-md-block">
<h5></h5>
<p></p>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-80" src="..." alt="Second slide">
<div class="carousel-caption d-none d-md-block">
<h5></h5>
<p></p>
</div>
</div>
</div>
<div class="carousel-item">
<img class="d-block w-80" src="..." alt="Third slide">
<div class="carousel-caption d-none d-md-block">
<h5></h5>
<p></p>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
我希望所有幻灯片(约50张幻灯片)都按照json中的顺序显示。
答案 0 :(得分:0)
let html = `
<div class="carousel-item">
<img class="d-block w-80" src="${imgSrc}" alt="Second slide">
<div class="carousel-caption d-none d-md-block">
<h5>${title}</h5>
<p>${parangraph}</p>
</div>
</div>
`
$(".carousel-inner")[0].append(html)
将上面的代码放入循环中,您应该已经准备就绪。 imgSrc,title和parangraph应该从您的API调用中动态生成。
答案 1 :(得分:0)
$.get('https://api.myjson.com/bins/152ni8')
.then(function(response) {
var $carousel = $('#carouselExampleIndicators');
var $carouselInner = $carousel.find('.carousel-inner');
response.data.forEach(function(item, i) {
var template = '';
if(i === 0) {
template = '<div class="carousel-item active">';
} else {
template = '<div class="carousel-item">';
}
template += '<img class="d-block w-80" src="' + item.image + '" alt="Second slide">';
template += '<div class="carousel-caption">';
template += '<h5>' + item.title_a + '</h5>';
template += '<p>' + item.category + '</p>';
template += '</div>';
template += '</div>';
$carouselInner.append(template);
})
$carousel.carousel();
})
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
嘿,这是jQuery和ES5 js的示例。我建议您使用https://handlebarsjs.com/来模板化html。看起来会更好。