我正在尝试制作一个包含 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-index,因此浮动在项目/图标上方。
我查看了各种 jQuery 插件,但似乎没有一个接近我需要的。