使用 z 索引选中复选框时创建颜色叠加
Create color overlay when checkbox selected using z-index
>我有一个复选框,用于选择包含产品信息的表。选择后,css 样式将覆盖 30% 的颜色,以便很明显该项目被选中。
仅使用 css 和 jquery,我可以调用具有比用于直观查看叠加的图像更大的 z 索引的样式。叠加样式有效并显示正确的 z 索引,但不在图像上。
使用 Jquery,我强制将图像的 z 索引恢复为 -10 值。仍然显示在彩色div的顶部...我甚至可以强制同一 Jquery 中的div 移动到 z-index 105,但它仍然没有显示在较小 z 索引上的图像顶部。
我认为问题是接收更大 z 索引的div 将 UP 中的所有内容作为起点,因此嵌套图像也在 z 索引级别上移。
如果是这种情况,如何最好地在一系列需要用 30% 不透明度样式覆盖的动态生成的表上进行叠加?
更新的工作代码:
$(function ()
{
$("input[type='checkbox']").change(function ()
{
if ($(this).is(":checked"))
{
$(this).parent().addClass("jobSelected");
} else
{
$(this).parent().removeClass("jobSelected");
}
});
});
</script>
<style type="text/css">
.jobSelected {
background-color: hsla(0,0%,0%,0.50);
position: relative;
}
</style>
更新的工作代码:
<div>
<table cellpadding="6" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<td> Item 1 </td>
</tr>
</thead>
<tbody>
<tr>
<td><img src="http://sgdesign.com/temp/temp1.png" alt="" style="z-index:-1; position:relative;"></td>
</tr>
</tbody>
</table>
<input type="checkbox" name="checkbox" id="checkbox">
Select </div>
<br>
<br>
<div>
<table cellpadding="6" cellspacing="0" border="0" width="100%">
<thead>
<tr>
<td > Item 2 </td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" style="border-left:0px none;padding-left:12px;"><img src="http://sgdesign.com/temp/temp2.png" alt="" style="z-index:-1; position:relative;"></td>
</tr>
</tbody>
</table>
<input type="checkbox" name="checkbox2" id="checkbox2">
Select </div>
上面的代码在设置预期值方面做得很好,这些值可以通过执行浏览器检查元素来查看,但结果没有实现目标。
您是对的,Z 索引更改不会级联,因为您正在处理一个表。为了解决这个问题,请直接在需要的div 上更改 z 索引。
尝试将 CSS 更改为以下内容:
.jobSelected {
background-color: hsla(0,0%,0%,0.30);
position: relative;
}
.jobSelected div.overlay {
z-index: 50;
}
当然,你的HTML也应该更新:
<tr>
<td valign="top" style="border-left:0px none;padding-left:12px;">
<div style="z-index:100; position:relative;" class="overlay">
<img src="http://sgdesign.com/temp/temp1.png" alt="" style="z-index:-1; position:relative;">
</div>
</td>
</tr>
解决方案是确保没有元素将所选内容包装在比动态更新值更高的 z 值中。
例如:
<tr>
<td valign="top" style="border-left:0px none;padding-left:12px;">
<div style="z-index:100; position:relative;" class="overlay">
<img src="http://sgdesign.com/temp/temp1.png" alt="" style="z-index:-1; position:relative;">
</div>
</td>
</tr>
我们看到一个div 以 100 的 z 索引深度包裹图像,而 jquery 设置的 css 为 50。删除具有 100 z 索引值的div 允许 jquery 更新的 css 在 50 正确覆盖。
相关文章:
- 更改使用Chart.js创建的图表中的轴线颜色
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何使用javascript创建颜色数组
- 如何在完整日历中创建可滴管颜色
- 如何在堆栈中创建具有不同颜色和自定义工具提示的堆积柱形图
- JavaScript 创建一个随机表生成器并为单元格分配颜色
- 如何通过在 Fabric JS 中传递颜色代码来创建自定义筛选器
- “创建”按钮,用于切换不包含特定文本颜色的表行的可见性
- 创建指向具有特定颜色的 Google 日历的 HTML 链接
- Javascript - 如何使用基于站点像素颜色的画布创建图像
- 如何使用高图表创建列字符,其中每列都有不同的颜色
- 使用 z 索引选中复选框时创建颜色叠加
- 基于集合动态创建颜色图例
- 从颜色框创建颜色框时,如何发送POST
- 如何在javascript悬停中创建颜色键
- 在extendscript中创建颜色选择器gui的最佳方式
- jsPDF创建颜色不同于原始的PDF
- 在HTML5画布上创建颜色选择器
- 如何在magento 1.8中为可配置产品创建颜色和显示颜色属性过滤器