gpt4 book ai didi

javascript - 使用javascript动态更改图像

转载 作者:行者123 更新时间:2023-11-30 07:20:27 26 4
gpt4 key购买 nike

我希望根据图像的类别动态显示图像。我有 4 个按钮,第一个按钮我想显示所有图像,另外 3 个按钮我想根据它们的类别对它们进行排序。要知道一个图像可以分为几个类别。

HTML:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div class="link">
<a onclick="showImg()" class="link__color">All</a><!--category: 0-->
<a onclick="showImg()" class="link__color">category-1</a>
<a onclick="showImg()" class="link__color">category-2</a>
<a onclick="showImg()" class="link__color">category-3</a>
</div>

<div class="container">
<!-- <div class="container__img"><img class="img" src=""></div> -->
</div>

</body>
</html>

JS:

    const partners = [
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTP267XEMpkNGK6SFQ97S0H417cdi3wwu6PtweMTOGSPreaJqFJWQ'`, category: [0,1,3]},
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR8YvxkmxhzlS3EQ9nmwODbfDvxzdYZZCbBl_Q3mkw53qH8QIv0hQ'`, category: [0,2]},
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQGV9LR9tr0hSWJdUcD15OSk7p3X47sy4QFBB6SLOQXQYt7G8AnfA'`, category: [0,1,2]},
{img: `src='https://c1.staticflickr.com/4/3823/11294769684_5d4b0d1a23_n.jpg'`, category: [0,1,2]},
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTnccHtrN6iwkll-kIreBtv9jTM831XY2-wRvtevpb8ApCtdC27'`, category: [0,2,3]},
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTnccHtrN6iwkll-kIreBtv9jTM831XY2-wRvtevpb8ApCtdC27'`, category: [0,2]},
{img: `src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUgwZXDhsiXxNBQ8KAxFvVcOGU0mMd8gohhRf5OP4z0NOjeO6N'`, category: [0,3]},
];


function showImg(category) {
const createDiv = document.createElement('div').setAttribute('class', 'container__img');
/* creatDiv = is the div that will surround every img */
partners.forEach(function() {
if() {

}
});
}

这就是我在尝试了很多事情之后所处的位置。所以我想让每个图像都放在我的类中:container__img。而且我不确定 forEach () 是正确的想法。 (笨蛋:https://plnkr.co/edit/OqCFuDExAbae8KDkfAhI?p=preview)

认为它不是很复杂,但目前我想不出任何想法。

最佳答案

  1. 您可能想从您的partners 对象(的原始版本)中删除src= 部分。
  2. 您的链接需要一个 href 属性,否则它们看起来不像链接,它们还需要返回 false 或防止默认,它们还需要包含类别参数..
  3. filter 过滤数组方法。
  4. 创建每个图像并将其附加到容器。

const partners = [
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTP267XEMpkNGK6SFQ97S0H417cdi3wwu6PtweMTOGSPreaJqFJWQ", category: [0,1,3]},
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR8YvxkmxhzlS3EQ9nmwODbfDvxzdYZZCbBl_Q3mkw53qH8QIv0hQ", category: [0,2]},
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQGV9LR9tr0hSWJdUcD15OSk7p3X47sy4QFBB6SLOQXQYt7G8AnfA", category: [0,1,2]},
{img: "https://c1.staticflickr.com/4/3823/11294769684_5d4b0d1a23_n.jpg", category: [0,1,2]},
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTnccHtrN6iwkll-kIreBtv9jTM831XY2-wRvtevpb8ApCtdC27", category: [0,2,3]},
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTnccHtrN6iwkll-kIreBtv9jTM831XY2-wRvtevpb8ApCtdC27", category: [0,2]},
{img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUgwZXDhsiXxNBQ8KAxFvVcOGU0mMd8gohhRf5OP4z0NOjeO6N", category: [0,3]},
];


function showImg(category) {
const container = document.querySelector(".container");
container.innerHTML = "";
const filteredImages = partners.filter(itm => ~itm.category.indexOf(category));
filteredImages.forEach(itm => {
const createDiv = document.createElement('div');
createDiv.setAttribute('class', 'container__img');
var img = new Image();
img.onload = function() {
createDiv.appendChild(img);
container.appendChild(createDiv);
};
img.src = itm.img
});
return false;
}
.container__img{
display: inline-block;
width: 100px;
}

.container__img img{
max-width: 100%;
}
<div class="link">
<a href=# onclick="showImg(0)" class="link__color">All</a>
<!--category: 0-->
<a href=# onclick="showImg(1)" class="link__color">category-1</a>
<a href=# onclick="showImg(2)" class="link__color">category-2</a>
<a href=# onclick="showImg(3)" class="link__color">category-3</a>
</div>

<div class="container">
<!-- <div class="container__img"><img class="img" src=""></div> -->
</div>

关于javascript - 使用javascript动态更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com