javascript交换缩略图与更大的图像

时间:2013-07-10 18:18:15

标签: javascript html css thumbnails

我是网络编程的新手,现在正在网站上工作。在这个网站的一部分,我收集了3张图片。它下方有一个较大的一个和两个较小的缩略图。我的目标是创建一种方法,我可以点击其中一个缩略图,然后用一张大图片交换点。知道怎么做这个吗?这是一段代码。谢谢!

<div class = 'picture-container'>
            <div class = 'large-picture' id = 'lp1'>
                <figure style = 'float:left;width:45%;'>
                    <img src = 'close_table_dupontstudios.png' width = '100%' height = '100%' class = 'no-mobile'>
                    <figcaption class = 'red-cap'>Our Set-Up</figcaption>
                </figure>
                <div class = 'picture-content'>
                    <div class = 'picture-title'>BOUTIQUE PRODUCTION STUDIO</div>
                    <div class = 'picture-text'>We built a boutique full service production studio that allows for one, two and three person filmed interviews and conversations. We have studio lights, a three camera set-up and remote monitoring. Additionally, our Infinity Wall creates a clean and professional look that allows the film to be about the message.</div>
                    <!--<div class = 'small-picture'>
                        <img src = 'hair_and_makeup_dupontstudios.png' width = '175' height = '100'>
                    </div>
                    <div class = 'small-picture'>
                        <img src = 'infinity_wall_dupontstudios.png' width = '175' height = '100'>
                    </div>-->
                </div>
                <div class = 'thumbnail-container'>
                    <figure class = 'thumbnail'>
                        <img src = 'infinity_wall_dupontstudios.png' width = '100%' height = '100%'>
                    </figure>
                    <figure class = 'thumbnail'>
                        <img src = 'infinity_wall_dupontstudios.png' width = '100%' height = '100%'>
                    </figure>
                </div>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。最简单的方法是转储所有图像(大小),并且一次只显示一个。

因此,在源代码中,除第一个之外的所有大型图像都将具有hidden类,这使得它们成为display: none。然后,只需在点击缩略图时显示正确的大图像即可。

要显示正确的大图像,您需要通过标识符将缩略图与大图像相关联。下面是将缩略图链接的href设置为大图像ID的示例。

<a href="#lp1">
  <figure class="thumbnail">...</figure>
</a>

现在添加javascript(jQuery)。

// preselect all large images
var largeImages = $('figure.large');
// add handler for thumbnail clicks
$('.thumbnail-container').on('click', 'a', function (e) {
    e.preventDefault();
    var thumbnailLink = $(this),
        selectedLarge = $(thumbnailLink.attr('href'));
    // hide all the large images
    largeImages.addClass('hidden');
    // show the large image that corresponds to the clicked thumbnail
    selectedLarge .removeClass('hidden');
});

所以,简单方法是隐藏/显示,但这意味着效率不高。它使客户端加载所有图像,即使它们被隐藏。

更有效的方法是在缩略图中添加data-属性,在缩略图点击处理程序内部使用点击的缩略图中的数据更新大内容区域。要“替换”您只需要替换的图像{ {1}}属性。