0

我对网络编程很陌生,我现在在一个网站上工作。在本网站的一个部分,我收集了 3 张图片。其下方有 1 个较大的缩略图和两个较小的缩略图。目标是创建一种方式,让我可以单击其中一个缩略图,然后它们与一张大图片交换位置。知道我会怎么做吗?这是一段代码。谢谢!

<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>
4

1 回答 1

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-属性,然后在缩略图单击处理程序中使用单击的缩略图中的数据更新大内容区域。要“替换”图像,您只需要替换src属性即可。

于 2013-07-10T20:27:44.607 回答