gpt4 book ai didi

JavaScript/jQuery UI : Changing element img src from an array of images based on current img src

转载 作者:行者123 更新时间:2023-11-28 05:52:09 24 4
gpt4 key购买 nike

我有一个包含图像的 Canvas 元素,它最初是一个绿色方 block 。我正在尝试根据两组 jQuery UI 单选按钮的输入更改显示的图像:第一组允许用户选择颜色并有 3 个选项(红/绿/蓝),第二组允许用户选择颜色。用户选择形状(圆形/方形)。

我的 Javascript 代码声明了一个图像数组,然后在选中按钮选项时将其中一个图像分配为显示在 Canvas 元素中,如下所示:

var images = new Array();

images[0] = new Image();
images[0].src = '../../../media/images/Red-Circle.png';

images[1] = new Image();
images[1].src = '../../../media/images/Red-Square.png';

images[2] = new Image();
images[2].src = '../../../media/images/Green-Circle.png';

images[3] = new Image();
images[3].src = '../../../media/images/Green-Square.png';

images[4] = new Image();
images[4].src = '../../../media/images/Blue-Circle.png';

images[5] = new Image();
images[5].src = '../../../media/images/Blue-Square.png';


$(function () {
$("#colour").buttonset();
$("#shape").buttonset();
});

$('#red').click(function () {
if ($('#red').is(':checked')) {
$("#container #image img").attr("src", images[1].src);
}
});

$('#green').click(function () {
if ($('#green').is(':checked')) {
$("#container #image img").attr("src", images[3].src);
}
});

$('#blue').click(function () {
if ($('#blue').is(':checked')) {
$("#container #image img").attr("src", images[5].src);
}
});

HTML:

<div id="container">
<div id="image">
<img src="media/images/Green-Square.png" />
</div>
</div>

<form>
<div id="colour">
<input type="radio" id="red" name="radio">
<label for="colour1">Red</label>
<input type="radio" id="green" name="radio" checked="checked">
<label for="colour2">Green</label>
<input type="radio" id="blue" name="radio">
<label for="colour3">Blue</label>
</div>
</form>
<form>
<div id="shape">
<input type="radio" id="circle" name="radio">
<label for="circle">Circle</label>
<input type="radio" id="square" name="radio" checked="checked">
<label for="square">Square</label>
</div>
</form>

我只能选择颜色。在选择形状时,我想更改显示的图像以保留之前选择的颜色(例如,如果当前选择的颜色为红色并且用户随后选择了圆形,则显示的图像将更改为红色圆圈而不是绿色或蓝色圆圈)。相反,如果用户首先选择形状,然后选择颜色,我希望显示的图像保留形状的选择。

我有一个模糊的想法,解决方案可能是根据当前索引从数组索引中加 1 或减 1 - 但我不知道如何实现它。我对 JS 比较陌生,因此我们将不胜感激。谢谢。

最佳答案

您可以将图像存储在“图像”对象中,并通过字符串(例如图像[“RedSquare”])访问它们,我已经整理了一个 fiddle 。图像链接已损坏,但如果您检查页面,您可以看到 src 已正确更改。

https://jsfiddle.net/5wv5ym5p/

HTML:

<div id="container">
<div id="image">
<img src="media/images/Green-Square.png" />
</div>
</div>

<form>
<div class="shape-config" id="colour">
<input type="radio" id="red" name="radio">
<label for="red">Red</label>
<input type="radio" id="green" name="radio" checked="checked">
<label for="green">Green</label>
<input type="radio" id="blue" name="radio">
<label for="blue">Blue</label>
</div>
</form>
<form>
<div class="shape-config" id="shape">
<input type="radio" id="circle" name="radio">
<label for="circle">Circle</label>
<input type="radio" id="square" name="radio" checked="checked">
<label for="square">Square</label>
</div>
</form>

JS(需要 JQuery):

var images = {};

images["RedCircle"] = new Image();
images["RedCircle"].src = '../../../media/images/Red-Circle.png';

images["RedSquare"] = new Image();
images["RedSquare"].src = '../../../media/images/Red-Square.png';

images["GreenCircle"] = new Image();
images["GreenCircle"].src = '../../../media/images/Green-Circle.png';

images["GreenSquare"] = new Image();
images["GreenSquare"].src = '../../../media/images/Green-Square.png';

images["BlueCircle"] = new Image();
images["BlueCircle"].src = '../../../media/images/Blue-Circle.png';

images["BlueSquare"] = new Image();
images["BlueSquare"].src = '../../../media/images/Blue-Square.png';


$(function () {
$("#colour").buttonset();
$("#shape").buttonset();
});

$('.shape-config input').click(function () {
var colourId = $("#colour input:checked").attr("id");
var colour = $('label[for='+colourId+']').text();
var shapeId = $("#shape input:checked").attr("id");
var shape = $('label[for='+shapeId+']').text();
$("#container #image img").attr("src", images[colour+""+shape].src);
});

关于JavaScript/jQuery UI : Changing element img src from an array of images based on current img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994504/

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