根据图像选择显示新图像
Display a new image based on image choices
我试图在HTML中使用单选按钮的选项创建一个表单。单选按钮需要是单独的可点击缩略图图像(因此不会看到浏览器样式的单选按钮,并且每个单选按钮都是不同的)。将有3组单选按钮,每组有3个选项。
这些需要结合在一起,在页面的其他地方显示一个更大的主图像,根据用户选择的选项。
我希望主图像在用户选择每个选项时动态更改。-我不想要一个表单的最后有一个提交按钮。
有人有什么想法吗?
到目前为止,我的代码是: <style>
label {display:block;}
.radio {
opacity: 0.5;
width: 80px;
height: 80px;
float: left;
margin: 5px;
}
.checked {opacity: 1;}
#single {background: url(a.jpg);}
#double {background: url(b.jpg);}
#none {background: url(c.jpg);}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('input[type=radio].radio-image').each(function() {
var id = this.id;
$(this).hide().after('<a class="newrad" href="#"><div class="radio" id="' + id + '"></div></a>');
});
$('.newrad').live('click', function(e) {
e.preventDefault();
var $check = $(this).prev('input');
$('.newrad div').attr('class', 'radio');
$(this).find('div').addClass('checked');
$('input[type=radio].radio-image').attr('checked', false);
$check.attr('checked', true);
});
});
$(document).ready(function() {
$("input:radio[name=wardrobe]").change(function() {
if (this.value == "a") {
$("#imgOne").attr(
'src', 'a.jpg'
);
}
else {
$("#imgOne").attr(
'src', 'b.jpg'
);
}
});
});
</script>
</head>
<body>
<form>
<label><input type="radio" class="radio-image" name="wardrobe" id="single" value="a" />A</label>
<label><input type="radio" class="radio-image" name="wardrobe" id="double" value="b" />B</label>
<label><input type="radio" class="radio-image" name="wardrobe" id="none" value="c" />C</label>
</form>
<img id="imgOne" />
</body>
这只是部分代码,对于第一组选项,我使用它作为起点。
我设法得到缩略图作为单选按钮,这工作得很好。我设法用普通的单选按钮来交换图像。但是我不能把两者结合在一起。
所以,我认为你是对的。虽然我对隐藏按钮并将其替换为标签的功能有点困惑,但我相信您想要的是使缩略图具有单选按钮的功能。你所要做的就是把当前的
<input type="radio" class="radio-image" name="wardrobe" id="single" value="a" />
<img src="a.jpg" class="radio-image" data-ref="a"/>
并更改jQuery以允许这些新图像:
$(document).ready(function() {
$('img.radio-image').click(function() {
$("img.selected").removeClass("selected");
$(this).addClass("selected");
$("#imgOne").attr("src", $(this).attr("data-ref") + ".jpg");
});
});
和css
img{
border: 1px solid transparent;
}
.selected {
border: 1px solid #00c;
}
诀窍是你的图像只需要坐在那里。让jQuery来完成繁重的工作。
相关文章:
- HTML5拖放新图像并替换Div中的现有图像
- 如何在 javascript 替换新图像/标题后正确显示 css 工具提示
- 编辑图像而不创建新图像
- 如何仅在新图像实际可用时刷新图像源
- 为什么可以't我使用javascript显示一个新图像
- 正在显示加载..在将新图像加载到网站时播放动画
- 将鼠标悬停在链接上时的新图像
- 将许多新图像绘制到画布时内存泄漏
- 从网页中的 2 张图像创建新图像
- Jcrop:设置图像后,jcrop在应用新图像时不采用TrueSize
- Javascript/Canvas - 从预先存在的图像创建新图像
- 如何在 DIV 中更新新图像
- 如何使用Javascript,以便每次我单击图像时,它都会在单击的项目下方添加一个新图像
- 如何在鼠标悬停在另一个图像/链接上时显示新图像/窗口
- 使用画布在Javascript中获取新图像的最佳方法
- 如何使用jquery实现垂直图像滑块,其中在显示新图像之前,它将关闭并使用新图像打开
- 将动态创建的图像替换为输入中的新图像
- Javascript 数组不会注意到文件夹中的新图像
- 没有对具有相同 URL 的新图像的新请求
- 在1行中创建新图像()