我正在尝试进行简单的图库测试。我希望有四个缩略图。当点击其中任何一个时,它会将大图像的图像源更改为正确的相应图像,但我在尝试实现此目的时遇到了问题。
这是我到目前为止所拥有的:
HTML
<body>
<section id="gallery">
<div id="sidebar">
<a id="image1" href=""><img src="images/blue_small.jpg"></a>
<a id="image2" href=""><img src="images/red_small.jpg"></a>
<a id="image3" href=""><img src="images/green_small.jpg"></a>
<a id="image4" href=""><img src="images/orange_small.jpg"></a>
</div>
<div id="enlarged">
<img id="bigImage" src="images/blue_large.jpg" >
</div>
</section>
<script src="test.js"></script>
</body>
的JavaScript
function imageSelect () {
var image1 = document.getElementById("image1");
var image2 = document.getElementById("image2");
var image3 = document.getElementById("image3");
var image4 = document.getElementById("image4");
var bigImage = document.getElementById("bigImage");
if (image1.clicked == true) {
bigImage.src = "images/blue_large.jpg";
} else if (image2.clicked == true) {
bigImage.src = "images/red_large.jpg";
} else if (image3.clicked == true) {
bigImage.src = "images/green_large.jpg";
} else if (image2.clicked == true) {
bigImage.src = "images/orange_large.jpg";
}
};
imageSelect();
感谢您的帮助。
答案 0 :(得分:1)
使用Javascript:
function imageSelect(imageSrc) {
var newImage = imageSrc;
document.getElementById("bigImage").src = newImage;
return false;
};
HTML:
<section id="gallery">
<div id="sidebar">
<a id="image1" href="#" onclick="imageSelect('blue_big.png');"><img src="blue_small.png"></a>
<a id="image2" href="#" onclick="imageSelect('red_big.png');"><img src="red_small.png"></a>
<a id="image3" href="#" onclick="imageSelect('green_big.png');"><img src="green_small.png"></a>
<a id="image4" href="#" onclick="imageSelect('orange_big.png');"><img src="orange_small.png"></a>
</div>
<div id="enlarged">
<img id="bigImage" src="te5.png" >
</div>
</section>
答案 1 :(得分:0)
一切似乎都井井有条。但是你确实需要监听onclick事件并激活你的imageSelect()函数。
答案 2 :(得分:0)
你得到了什么结果?我们没有多少工作要做。代码看起来不错,除非我在&#39;之前添加另一个左括号。条件及其最后一个闭合支撑前的闭合支撑。这隔离了“如果&#39;从图像加载功能。此外,什么是驾驶/调用&#39; imageSelect()&#39;功能?
我刚才注意到你的图像没有被它们的隐含名称调用。将它们的名称添加到那些函数调用中,它应该可以工作。
答案 3 :(得分:0)
如果您需要更强大的解决方案,这是主题的变体,会增加一些复杂性。
<section id="gallery">
<div id="sidebar">
<ul>
<li>
<img src="http://placehold.it/100x100" class="small" data-key="aaa" />
</li>
<li>
<img src="http://placehold.it/100x100" class="small" data-key="bbb" />
</li>
<li>
<img src="http://placehold.it/100x100" class="small" data-key="ccc" />
</li>
<li>
<img id="four" src="http://placehold.it/100x100" class="small" data-key="ddd"/>
</li>
</ul>
</div>
<div id="enlarged">
<img id="big" src="http://lorempixel.com/h/600/410/" >
</div>
</section>
-
var big = document.getElementById("big");
var imgsrc = {
'aaa' : 'http://lorempixel.com/d/600/410/',
'bbb' : 'http://lorempixel.com/e/600/410/',
'ccc' : 'http://lorempixel.com/f/600/410/',
'ddd' : 'http://lorempixel.com/g/600/410/'
};
function imageSelect (target) {
var img = new Image();
img.src = imgsrc[target.dataset.key];
img.onload = function(){
big.src = img.src;
}
};
document.body.addEventListener("click", function (event) {
if (event.target.classList.contains("small")) {
imageSelect(event.target);
}
});
几个要点:
使用这些非常基本的功能,您可以支持任何数量的不同要求(并且不需要jquery)。