gpt4 book ai didi

jquery - 使用 Jquery 更改图像(圆周运动)

转载 作者:行者123 更新时间:2023-12-03 23:05:42 26 4
gpt4 key购买 nike

大家好,

我有一个像这样的 DOM

<div class="Gallery">
<div class="GaleryLeftPanel">
<img id="img1" src="/Content/Public/images/1.png" style="z-index: 100" width="141"
height="140" alt="image 1" /></div>
<div class="GalleryMiddlePanel">
<img id="img2" src="/Content/Public/images/3.png" style="z-index: 99" width="715"
height="497" alt="image 2" /></div>
<div class="GaleryRightPanel">
<img id="img3" src="/Content/Public/images/2.png" style="z-index: 98" width="140"
height="140" alt="image 2" /></div>
</div>

我需要的是,如果我点击img1img2被替换为img1img3被替换为img2>img1 替换为 img3(圆周运动 1->2、2->3、3->1)。它是连续的......如果我点击 img3 那么它是相反的(1<-2, 2<-3, 3<-1)。

为此,我使用 JQuery,如下所示:

$('img#img1').click(function () {
var currentScr = $(this).attr('src');
var second = $('img#img2').attr('src');
var third = $('img#img3').attr('src');

$('img#img3').attr('src', second);
$('img#img2').attr('src', currentScr);
$('img#img1').attr('src', third);
});

$('img#img3').click(function () {
var third = $(this).attr('src');
var first = $('img#img1').attr('src');
var second = $('img#img2').attr('src');

$('img#img2').attr('src', third);
$('img#img3').attr('src', first);
$('img#img1').attr('src', second);
});

一切正常。现在,我需要的是,始终应将第二张图像替换为大图像而不是原始图像......例如:

单击img1(1->2L、2->3、3->1)。这里2L是img1的大图。和单击 img3 (1<-2, 2L<-3, 3<-1)。这里2L是img3的大图

如何做到这一点?请帮助我

最佳答案

这里您需要的是使用双端队列数据结构,以便您可以循环浏览图像。

这是 a working demo - 如果您给我大图像的 URL,我可以让它按照您的描述工作。

这是代码:

var imgs = new Array();
imgs[0] = 'http://farm7.staticflickr.com/6198/6145108610_a5d456dae4_t.jpg';
imgs[1] = 'http://farm3.staticflickr.com/2564/4064894944_34b0460fc2_t.jpg';
imgs[2] = 'http://farm1.staticflickr.com/178/460793430_1c0a085849_t.jpg';

$('#img1').click(function () {
$('#img1').attr('src', imgs[2]);
$('#img2').attr('src', imgs[0]); // - Do something here to use a larger version of the image
$('#img3').attr('src', imgs[1]);
imgs.unshift(imgs.pop());
});

$('#img3').click(function () {
$('#img1').attr('src', imgs[1]);
$('#img2').attr('src', imgs[2]); // - Do something here to use a larger version of the image
$('#img3').attr('src', imgs[0]);
imgs.push(imgs.shift());
});

还有一个稍微重构的版本 here

编辑:

这是a version with big images.

var imgs = new Array();
imgs[0] = {small: 'http://farm7.staticflickr.com/6198/6145108610_a5d456dae4_t.jpg',
big: 'http://farm7.staticflickr.com/6198/6145108610_a5d456dae4_b.jpg'};
imgs[1] = {small: 'http://farm3.staticflickr.com/2564/4064894944_34b0460fc2_t.jpg',
big: 'http://farm3.staticflickr.com/2564/4064894944_34b0460fc2_b.jpg'};
imgs[2] = {small: 'http://farm9.staticflickr.com/8201/8219867682_7c9aea748f_t.jpg',
big: 'http://farm9.staticflickr.com/8201/8219867682_7c9aea748f_b.jpg'};

var $img1 = $('#img1');
var $img2 = $('#img2');
var $img3 = $('#img3');

$img1.click(function () {
$img1.attr('src', imgs[2].small);
$img2.attr('src', imgs[0].big);
$img3.attr('src', imgs[1].small);
imgs.unshift(imgs.pop());
});

$img3.click(function () {
$img1.attr('src', imgs[1].small);
$img2.attr('src', imgs[2].big);
$img3.attr('src', imgs[0].small);
imgs.push(imgs.shift());
});

关于jquery - 使用 Jquery 更改图像(圆周运动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com