【发布时间】:2019-08-22 17:38:42
【问题描述】:
我正在创建一个表单,其中一些元素是图像。将鼠标悬停在上方时,有一条 CSS 规则会在所选图像周围创建粗边框。选择图像时也是如此;它留下了一个粗边框。
但我面临的问题是,当单击图像时,虽然它会在正确图像周围留下粗边框,但它不会重新定义其他先前选择的图像周围的边框。 (通过重新定义,我的意思是让它变得半透明以阻止图像移动)。
这是一个 JSFiddle:http://jsfiddle.net/bewWF/ 或者您可能会看到下面的代码。
HTML
<div class="grid_12 alpha" id="selection">
<input type="hidden" id="SelSunlight" name="SelSunlight" value=""/>
<div class="grid_2 omega" style="margin-left: 8px">
<div align="center"><img src="images/details/any.png"/ id="AnySun" name="AnySun" onClick="SelectSunlight('AnySun')"/></div>
<p id="image-text">Any</p>
</div>
<div class="grid_2 alpha omega">
<div align="center"><img src="images/details/sunlight/full_light.png" id="FullSun" name="FullSun" onClick="SelectSunlight('FullSun')"/></div>
<p id="image-text">Full Sun</p>
</div>
<div class="grid_2 alpha omega">
<div align="center"><img src="images/details/sunlight/part_shade.png" id="PartShade" name="PartShade" onClick="SelectSunlight('PartShade')"/></div>
<p id="image-text">Part Shade</p>
</div>
<div class="grid_2 alpha">
<div align="center"><img src="images/details/sunlight/full_shade.png" id="FullShade" name="FullShade" onClick="SelectSunlight('FullShade')"/></div>
<p id="image-text">Full Shade</p>
</div>
</div>
JavaScript
function SelectSunlight(item) {
$.each(['#AnySun','#FullSun','#PartShade','#FullShade'], function() {
$(this).css('border', "3px solid #f5f5f5");
$(this).hover( function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
});
$('#'+item).css('border', "3px solid #a6be39");
$('#SelSunlight').val(item);
}
.hover 定义为#selection .hover {border: 3px solid #a6be39}
我已经解决了一个又一个问题,在花费了很长时间之后,我终于对这个问题没有想法了。我的头脑认为它应该工作,但显然它没有!
需要做什么:
1) 用户选择一张图片 2) 选择图像后,该图像的边框仍然很粗 3)所有其他图像必须保持悬停效果,边框分别变粗和变细 4) 如果随后选择了另一张图片,则重置步骤 2 中的边框,新图片采用粗边框
这张图片可能会更清楚:http://i48.tinypic.com/ei4f9t.png
【问题讨论】:
-
我更新了我的帖子。如果我缺少您的任何要求,请告诉我。