Javascript 如何通过单击缩略图显示/隐藏大图像?

Javascript 如何通过单击缩略图显示/隐藏大图像?,javascript,jquery,css,mobile-safari,Javascript,Jquery,Css,Mobile Safari,如何通过单击缩略图显示/隐藏大图像 我需要这样 在此处尝试使用JSFIDLE 仅使用CSS是否可行。如果不是,那么jQuery解决方案就可以了 使用好吗参见此示例: 无预加载 HTML: 当前只有1个大图像,当单击A时,A的href被复制为大图像的SRC 实例: 如果您不想在没有额外DOM的情况下执行此操作,您可以添加3个大图像,并直接加载它们。上面的解决方案不会预加载图像,下面的函数将自动加载 预加载时 HTML: 这多次为img的buildsrc添加了更多的dom计算。不是效率。我用另一个

如何通过单击缩略图显示/隐藏大图像

我需要这样

在此处尝试使用JSFIDLE

仅使用CSS是否可行。如果不是,那么jQuery解决方案就可以了

使用
好吗参见此示例:

无预加载

HTML:

当前只有1个大图像,当单击A时,A的href被复制为大图像的SRC

实例:

如果您不想在没有额外DOM的情况下执行此操作,您可以添加3个大图像,并直接加载它们。上面的解决方案不会预加载图像,下面的函数将自动加载

预加载时

HTML:


这多次为
img
的buildsrc添加了更多的dom计算。不是效率。我用另一个函数更新了它。第一个函数不预加载图像,第二个函数直接加载图像@steven.yang它必须重建,但在普通PC上这应该不会有任何问题,但在iPad上它可以,因为处理和内存是有限的。@Niels-谢谢你的回答。如果你现在没有足够的时间回答这个问题,我会在今晚尝试,如果你还没有得到任何回答的话。
<div id="big-image">
    <img src="http://lorempixel.com/400/200/sports/1/">
</div>

<div class="small-images">
    <a href="http://lorempixel.com/400/200/sports/1/"><img src="http://lorempixel.com/100/50/sports/1/"></a>
<a href="http://lorempixel.com/400/200/fashion/1/" class=""><img src="http://lorempixel.com/100/50/fashion/1/"></a>
<a href="http://lorempixel.com/400/200/city/1/"><img src="http://lorempixel.com/100/50/city/1/"></a>
</div>
$(function(){
    $(".small-images a").click(function(e){
        var href = $(this).attr("href");
        $("#big-image img").attr("src", href);
        e.preventDefault();
        return false;
    });
});
<div id="big-image">
    <img src="http://lorempixel.com/400/200/sports/1/">
    <img src="http://lorempixel.com/400/200/fashion/1/">
    <img src="http://lorempixel.com/400/200/city/1/">
</div>

<div class="small-images">
    <img src="http://lorempixel.com/100/50/sports/1/">
    <img src="http://lorempixel.com/100/50/fashion/1/">
    <img src="http://lorempixel.com/100/50/city/1/">
</div>
$(function(){
    $("#big-image img:eq(0)").nextAll().hide();
    $(".small-images img").click(function(e){
        var index = $(this).index();
        $("#big-image img").eq(index).show().siblings().hide();
    });
});