JQuery图像交换

JQuery图像交换,jquery,css,Jquery,Css,我有6个图像,3个全尺寸和3个缩略图,并已将每个图像url加载到javascript变量中。在我的页面上,我显示了3张图片:一张全尺寸图片和两张缩略图。当用户单击缩略图时,我希望全尺寸图像显示所单击缩略图的全尺寸版本,缩略图显示以前全尺寸图像的缩略图版本 我可以用下面的脚本让它发生一次。我也可以构建一个巨大的if/then块来检查所有案例,但我正在寻找更优雅的东西。有什么想法吗 谢谢 function add_image_header(){ global $post;

我有6个图像,3个全尺寸和3个缩略图,并已将每个图像url加载到javascript变量中。在我的页面上,我显示了3张图片:一张全尺寸图片和两张缩略图。当用户单击缩略图时,我希望全尺寸图像显示所单击缩略图的全尺寸版本,缩略图显示以前全尺寸图像的缩略图版本

我可以用下面的脚本让它发生一次。我也可以构建一个巨大的if/then块来检查所有案例,但我正在寻找更优雅的东西。有什么想法吗

谢谢

    function add_image_header(){
    global $post;

    $image_header = get_post_meta( $post->ID, 'image_header', true );
    $image_one_full = get_post_meta( $post->ID, 'image_one_full', true );
    $image_one_cropped = get_post_meta( $post->ID, 'image_one_cropped', true );
    $image_two_full = get_post_meta( $post->ID, 'image_two_full', true );
    $image_two_cropped = get_post_meta( $post->ID, 'image_two_cropped', true );
    $image_three_full = get_post_meta( $post->ID, 'image_three_full', true );
    $image_three_cropped = get_post_meta( $post->ID, 'image_three_cropped', true );

    $page_meta_desc = get_post_meta( $post->ID, 'thesis_description', true );

    if($image_header){
        ?>

            <script type="text/javascript">
                $(document).ready(function(){
                    $("#thumb_one").click(function(){
                        var imageOneFull = "<?php echo $image_one_full;?>";
                        var imageOneCropped = "<?php echo $image_one_cropped;?>";
                        var imageTwoFull = "<?php echo $image_two_full;?>";
                        var imageTwoCropped = "<?php echo $image_two_cropped;?>";
                        var imageThreeFull = "<?php echo $image_three_full;?>";
                        var imageThreeCropped = "<?php echo $image_three_cropped;?>";

                        $('#thumb_one').click($('#main_image').attr("src",imageTwoFull));
                        $('#thumb_one').click($('#thumb_one').attr("src",imageOneCropped));
                    });
                });
            </script>

            <div id="img_header_container">
                <img src="<?php echo $image_one_full;?>" id="main_image"/>
                <img src="<?php echo $image_two_cropped;?>" id="thumb_one"/>
                <img src="<?php echo $image_three_cropped;?>" id="thumb_two"/>
                <div id="heading_text"><h2><?php echo get_the_title($ID) ?></h2><?php echo $page_meta_desc;?></div>
            </div>
        <?php
    }
}
对每个缩略图都一视同仁,为其添加缩略图类 添加到每个名为thumb\u image和main\u image的缩略图属性不知道这是否是html的正确用法,但它可以工作 单击thubmnail时,使用$this的魔力将thumb_图像和main_图像与main_图像中的图像交换。 在主图像上将图像设置为全尺寸,在缩略图上将图像设置为拇指大小
我给你两个解决方案

我使用三个我更喜欢的缩略图

HTML:

2按要求使用2个缩略图

HTML:


是的,这很有效!尽管对于其他使用此功能的用户,请不要忘记开头部分,谢谢!我同意拥有所有的缩略图更有意义,但我不是客户。
<div id="img_header_container">
            <img src="<?php echo $image_one_full;?>" id="main_image"/>
            <img class="thumb" data-main="?php echo $image_one_full;?>" src="<?php echo $image_one_cropped;?>" />
            <img class="thumb" data-main="?php echo $image_two_full;?>" src="<?php echo $image_two_cropped;?>"/>
            <img class="thumb" data-main="?php echo $image_three_full;?>" src="<?php echo $image_three_cropped;?>"/>
 </div>
  $(document).ready(function(){
                $(".thumb").click(function(){
                   $('#main_image').attr("src", $(this).data('main'));
                });
  });
<div id="img_header_container">
            <img data-thumb="<?php echo $image_one_cropped;?>" src="<?php echo $image_one_full;?>" id="main_image"/>
            <img class="thumb" data-main="?php echo $image_two_full;?>" src="<?php echo $image_two_cropped;?>"/>
            <img class="thumb" data-main="?php echo $image_three_full;?>" src="<?php echo $image_three_cropped;?>"/>
 </div>
  $(document).ready(function(){
                $(".thumb").click(function(){
                   var Image1Main = $(this).data('main');
                   var Image1Thumb = $(this).attr('src');

                   var Image2Main = $('#main_image').attr('src');
                   var Image2Thumb = $('#main_image').data('thumb');

                   $('#main_image').attr("src", Image1Main);
                   $('#main_image').data("thumb", Image1Thumb);


                   $(this).attr("src", Image2Thumb);
                   $(this).data("main", Image2Main);
                });
  });