我有一个数组,它看起来像
resourceData[0][0] = "pic1.jpg";
resourceData[0][1] = 5;
resourceData[1][0] = "pic2.jpg";
resourceData[1][1] = 2;
resourceData[2][0] = "pic3.jpg";
resourceData[2][1] = 900;
resourceData[3][0] = "pic4.jpg";
resourceData[3][1] = 1;
数字表示图像的z索引。最小z索引值为1。最大值(不是很重要)是2000。
我已经完成了所有的渲染和设置z索引。我的问题是,我想有四个功能:
// Brings image to z front
function bringToFront(resourceIndex) {
// Set z-index to max + 1
resourceData[resourceIndex][1] = getBiggestZindex() + 1;
// Change CSS property of image to bring to front
$( #imgD + resourceIndex).css("z-index", resourceData[resourceIndex][1]);
}
function bringUpOne(resourceIndex) {
}
function bringDownOne(resourceIndex) {
}
// Send to back z
function sendToBack(resourceIndex) {
}
因此给定索引[3](900z):
如果我们把它发送到后面,它将取值1,[3]必须转到2,但这与[1]有2个z索引的人冲突,所以他们需要转到3等。
有没有一种简单的编程方法可以做到这一点,因为一旦我开始做这件事,它就会变得一团糟。
数组的索引不变是非常重要的。不幸的是,由于设计原因,我们无法对数组进行排序。
Update Thanks for answers, I ll post the functions here once they are written incase anyone comes across this in the future (note this code has zindex listed in [6])
// Send to back z
function sendToBack(resourceIndex) {
resourceData[resourceIndex][6] = 1;
$( #imgD + resourceIndex).css("z-index", 1);
for (i = 0; i < resourceData.length; i++) {
if (i != resourceIndex) {
resourceData[i][6]++;
$( #imgD + i).css("z-index", resourceData[i][6]);
}
}
}