已经尝试了几个小时,但似乎无法弄清楚为什么调整z-index不会实时影响圈子。
的Javascript / Jquery的:
var greenCircle = "#greenCircle";
var blackCircle = "#blackCircle";
$(greenCircle).css("z-index", "5");
$(blackCircle).css("z-index", "4");
$(greenCircle).animate({ width: '200%', height: '100%', left: '-50%', top: 0}, lockTime);
以下是HTML布局:
<img class = "clearCircle" id = "greenCircle" src = "Resources/Background/GreenCircle.png" alt = "Clear circle">
<img class = "clearCircle" id = "blackCircle" src = "Resources/Background/BlackCircle.png" alt = "Clear circle">
Inital CSS
.clearCircle {
position: absolute;
height: 0;
width: 0;
}
无论我尝试过什么,blackCircle总是在前面,代码没有错误。
提前感谢您提供任何帮助
答案 0 :(得分:4)
试试这个:
HTML - 我添加了一些彩色占位符圈来帮助排除故障:
<img class="clearCircle" id="greenCircle" src="http://placehold.it/200x200/66ff66" alt="Clear circle">
<img class="clearCircle" id="blackCircle" src="http://placehold.it/200x200/000000" alt="Clear circle">
JavaScript - 我在jQuery document.ready()中包装了所有内容。如果将黑色图像的z-index从10更改为30,您将在绿色图像前看到它。
$(function () {
var lockTime = 2000;
var greenCircle = "#greenCircle";
var blackCircle = "#blackCircle";
$(greenCircle).css("z-index", "20");
$(blackCircle).css("z-index", "10");
$(greenCircle).animate({
width: '200%',
height: '100%',
left: '-50%',
top: 0
}, lockTime);
});
CSS - 增加初始尺寸,以便您可以看到黑色图像:
.clearCircle {
position:absolute;
height:50;
width:50;
}
演示 - 您会看到图片尊重z-index:
答案 1 :(得分:3)
我并不完全清楚你想要完成什么,但我认为你的问题的“原因”基本上归结为z-index的浏览器堆叠上下文以及使用你的jquery脚本实际应用z-index的时候。
当您设置元素位置但未定义z-index值时,浏览器会根据DOM中元素外观的顺序来解释z-index。最后加载的元素将显示在它之前的元素上方。'
以下是我的意思:https://jsfiddle.net/pmpg0zah/
以下是z-index及其工作原理的详细说明:http://timkadlec.com/2008/01/detailed-look-at-stacking-in-css/
jQuery在加载DOM后运行,这就是为什么你看到黑色圆圈最初出现在顶部然后在绿色圆圈更新后消失。
如果您希望它看起来像是实时渲染,那么您需要像这样反转img元素顺序:
<img class = "clearCircle" id = "blackCircle" src = "Resources/Background/BlackCircle.png" alt = "Clear circle">
<img class = "clearCircle" id = "greenCircle" src = "Resources/Background/GreenCircle.png" alt = "Clear circle">
在这里分叉并更新你的小提琴:http://jsfiddle.net/uyyxcxkg/1/