1
這是一個使用相對定位的六邊形的菜單。當我點擊其中一個六邊形時,其他六邊形應該消失,點擊一個六邊形會接收選定的類,並在div的左上角突出顯示。如何平滑地動畫相對位置的div填補其他div所留下的空白?
動畫是突然的,部分原因是他的方式其他divs消失。
在這種情況下,如何平滑地動畫改變所選div的位置變化?這裏有一個動畫鏈接(注意:前三個元素平穩移動)。
https://codepen.io/sobrancelhas/pen/MbOggV
$(document).ready(function() {
$('.hexagonTile').click(function(e) {
var items = $(this).find('.circle a');
for(var i = 0, l = items.length; i < l; i++) {
items[i].style.left = (50 - 35*Math.cos(-0.5 * Math.PI - 2*(1/l)*i*Math.PI)).toFixed(4) + "%";
items[i].style.top = (50 + 35*Math.sin(-0.5 * Math.PI - 2*(1/l)*i*Math.PI)).toFixed(4) + "%";
}
e.preventDefault(); $(this).find('.circle').toggleClass('open');
if($(this).hasClass('selected')){
$(this).removeClass('selected', 1000);
$(".hexagonTile").not(this).animate({
'height': 'show',
'width': 'show',
'opacity': 'show'
}, 1000);
} else {
$(this).addClass('selected', 1000);
$(".hexagonTile").not(this).animate({
'height': 'hide',
'opacity': 'hide',
'width': 'hide'
}, 1000);
}
});
});
非常感謝您的回答,但所選項目的轉換仍在顫抖。 –
是的,但我認爲這是一個小麪糊。請嘗試改變一些東西以獲得更好的性能。例如轉移當前行並隱藏其他人一旦點擊 –
我改變了我的答案。 –