【发布时间】:2019-11-30 21:01:31
【问题描述】:
为 UI 使用 Bootstrap 并调用 api 以 3X3 显示图像 [Col X Row] 使用 javascript 异步等待。 但是在列中获得 3 个图像而不是 3 X 3 网格布局
它可以使用 Grid Columns 或使用 Flex In bootstrap 4
我正在使用 Dog Api 进行原型设计,用于演示目的。
点击按钮时,它将在引导程序的网格布局中显示前 15 个图像
下面没有得到正确的结果 image1 是我得到的输出。 图片1
const API_URL = 'https://dog.ceo/api/breeds/image/random/20';
const randomImgDogs = document.querySelector('.random-dogs');
const loadingImg = document.querySelector('.loading');
const getButton = document.querySelector('.getRandomDog');
loadingImg.style.display = 'none';
async function getRandomDogs() {
randomImgDogs.innerHTML = '';
loadingImg.style.display = '';
const response = await fetch(API_URL);
const json = await response.json();
console.log(json.message);
json.message.forEach(dogImage => {
randomImgDogs.innerHTML += `
<div class="container-fluid">
<div class="d-flex flex-row flex-wrap justify-content-center">
<div class="d-flex flex-column">
<img src="${dogImage}" class="img-fluid">
</div>
</div>
</div>`;
});
loadingImg.style.display = 'none';
}
getButton.addEventListener('click', getRandomDogs);
img {
margin: 5px;
}
.flex-column {
max-width: 260px;
}
a svg {
font-size: 30px;
text-align: center;
align-items: center;
justify-content: center;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.0/css/bootstrap.min.css">
<div class="jumbotron text-center">
<h1 class="display-4 font-weight-bold text-center">Random Dogs</h1>
<p class="lead">Click on Get to see some random dogs Images!</p>
<a class="btn btn-primary btn-lg getRandomDog " href="#" role="button">Get Random Dogs Images
<svg class="bi bi-chevron-right" width="32" height="32" viewBox="0 0 20 20" fill="currentColor"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd"
d="M6.646 3.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708-.708L12.293 10 6.646 4.354a.5.5 0 010-.708z"
clip-rule="evenodd" /></svg>
</a>
</div>
<!-- -->
<!-- loading -->
<div class="loading text-center">
<div class="spinner-border text-dark" style="width: 3rem; height: 3rem;" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>
<!-- loading ends -->
<!-- main start -->
<div class="random-dogs">
</div>
<!-- main ends -->
【问题讨论】:
-
数据传输与浏览器中的显示有什么关系?你有一个
n元素列表(这个列表来自哪里并不重要),它应该排列在一个 3x3 的网格中。恕我直言,这只是一个 CSS(+标记)问题。 -
@Andreas。我试过但在所有 3X3 网格中得到重叠或获得相同的图像,否则它不会显示具有不同图像的图像 3X3 网格。感谢高级
标签: javascript html async-await