最も簡単なアプローチは、divを選択するたびに最大Z-インデックスを増加させることです。 (私の記憶が正しければ2147483647)のz-index値がかなり大きくなることができますので、あなたが最も可能性の高いレベルを使い果たすことは決してありません...
次のスニペットは、いくつかのjQueryを使用:あなたが持っている場合は
var frontmostWindow = null;
var topZIndex = 10;
$('div').click(function() {
if (this != frontmostWindow) {
frontmostWindow = this;
topZIndex++;
$(this).css('zLevel', topZIndex);
// anything else needed to acticate your div
// ...
}
});
をあなたが使うことができるz-インデックスの制限は、別のdivが選択されるたびにレベルを再割り当てする必要があります。このように:
// store z-index-ordered divs in an array
var divs = $('div').toArray().sort(function(a, b) {
return parseInt($(a).css('zIndex'), 10) - parseInt($(b).css('zIndex'), 10);
});
// store available z-indices
var zIndices = [];
for (var i = 0; i < divs.length; ++i) {
zIndices.push($(divs[i]).css('zIndex'));
}
// Event listener for clicks
$('div').click(function() {
alert("heyya " + this.id);
var element = this;
var index = divs.indexOf(element);
// check if clicked element is not already the frontmost
if (index < divs.length - 1) {
// remove div from array and insert again at end
divs.splice(index, 1);
divs.push(this);
// re-assign stored z-indices for new div order
for (var i = 0; i < divs.length; ++i) {
$(divs[i]).css('zIndex', zIndices[i]);
}
// anything else needed to acticate your div
// ...
}
});
これはうまくいきます。 – user1121487