Я пытаюсь создать меню, которое содержит 5 элементов / значков, причем выбранный элемент находится в центре. При щелчке по левому или правому краю этого центрированного значка меню поворачивается влево или вправо, оборачивается вокруг краев и перемещается в зависимости от того, какой элемент был ближе к краю, через противоположный. Нажав на центрированный элемент, вы попадете на связанный с ним URL.
Меню также должно увеличиваться аналогично док-станции OS X, за исключением того, что уровни увеличения устанавливаются на основе положения, а не наведения мыши.
Я сделал диаграмму, которую легче понять, чем мои разговоры.
(источник: yfrog.com )
Мне удалось собрать простую версию jQuery, в которой элементы меняются местами по мере необходимости, но не могу понять, как анимировать это движение, особенно обтекание вокруг краев, и изменять размер в зависимости от положения.
Полагаю, мой код тоже не самый лучший:)
HTML выглядит следующим образом:
<div id="nav">
<div id="leftnav"></div>
<div id="rightnav"></div>
<div id="navblock1" class="navblock">
one
</div>
<div id="navblock2" class="navblock">
two
</div>
<div id="navblock3" class="navblock">
three
</div>
<div id="navblock4" class="navblock">
four
</div>
<div id="navblock5" class="navblock">
five
</div>
И JS:
function rotateNav(direction) {
var change = (direction=='left')?(-1):(+1);
$('div.navblock').each(function() {
oldPos = parseInt($(this).attr('id').substr(9));
newPos = oldPos+change;
if (newPos == 0)
newPos = 5;
else if (newPos == 6)
newPos = 1;
$(this).attr('id','navblock'+newPos);
});
}
$(document).ready(function(){
$("#leftnav").click(function() {
rotateNav('right');
});
$("#rightnav").click(function() {
rotateNav('left');
});
});
Все элементы .navblock абсолютно позиционированы. Элементы #leftnav и #rightnav также имеют более высокий z-индекс, поэтому плавают над элементами / значками.
Я смотрел на различные плагины jQuery, но ни один из них не похож на то, что мне нужно.