2013-04-12 22 views
0

這是一個數學問題,而不是一個編碼問題......我創建了一個散點圖,其中也有不同大小的氣泡。我希望較大的尺寸比較小的尺寸具有更低的z-索引,以避免較大的尺寸超過較小尺寸並且使交互變得不可能。所以我需要一個公式將代碼恢復順序。謝謝獲得較大數字的較低Z指數

回答

4

只是使用大小,並使其爲負(var zIndex = size * -1;)。

編輯爲非否定選項。

var zIndex = (1/size) * 1000; 

你可以調整1000根據自己的喜好。對於更大的尺寸,倒數會給出較小但正值的浮點值(使其保持在零以上)。乘法給你一個你可以使用的數字。

+0

我想到了這一點,但這會給我負Z指數,氣泡會落在圖形的其他元素的後面,我不希望它們是... –

+0

@ChiquiEsteban,我編輯了我的答案,包括一個非負面的解決方案。 – Travis

+0

用非負面選項指出你應該注意'size === 0'是很好的,因爲這會導致除以零異常。 – Travis

0

如果你知道氣泡的數量,那麼你可以開始做最大的一個零,最小的一個到氣泡的總數。或者,您可以使用負Z標記。

0

對於它的價值......

從性能的角度來看,最好的辦法是計算並在創建點適用每個氣泡的zIndex的。

如果這是不切實際的或不可能的,那麼你可以重新編制所有氣泡如下:

function reindex_bubbles() { 
    var bubbleArr = $(".bubble").get().sort(function(a, b) { 
     return b.width() - a.width();//or possibly the other way round? 
    }); 
    $.each(bubbleArr, function(i, bubble) { 
     bubble.attr('zIndex', i); 
    }); 
} 

在這裏,我們假設.width()使氣泡大小的可靠測量。如果不是,則替換其他表達式。