纯css3 lavalamp 菜单效果

发布于 结一

曾经我们对于jquery实现的lavalamp那是极度热爱啊,现在不用借助jquery,我们用纯css3实现了,过瘾啊。技术的关键在于在菜单的li最后先增加一个空元素来承载那个滑动的东西,再使用css3的兄弟元素选择器~,然后对于不同的li滑过的时候,设置承载滑动的那个元素的left位置。

更新:本实例在使用nth-child选择器时,在webkit内核中有bug,经99修改把nth-child替换为nth-of-type就可以,感谢99。demo和download文件中的代码没有更改,各位有兴趣可以测试下,然后换成nth-of-type试试。

demodownload

css主要代码:

#lavalamp {
    background: url('lavalamp.png') no-repeat scroll 0 0 transparent;
    height: 16px;
    left: 13px;
    position: absolute;
    top: 0px;
    width: 64px;

    -moz-transition: all 300ms ease;
    -ms-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    -webkit-transition: all 300ms ease;
    transition: all 300ms ease;
}
#lavalamp:hover {
    -moz-transition-duration: 3000s;
    -ms-transition-duration: 3000s;
    -o-transition-duration: 3000s;
    -webkit-transition-duration: 3000s;
    transition-duration: 3000s;
}
#nav li:nth-of-type(1):hover ~ #lavalamp {
    left: 13px;
}
#nav li:nth-of-type(2):hover ~ #lavalamp {
    left: 90px;
}
#nav li:nth-of-type(3):hover ~ #lavalamp {
    left: 170px;
}
#nav li:nth-of-type(4):hover ~ #lavalamp {
    left: 250px;
}
#nav li:nth-of-type(5):hover ~ #lavalamp {
    left: 330px;
}
#nav li:nth-of-type(6):hover ~ #lavalamp {
    left: 410px;
}
#nav li:nth-of-type(7):hover ~ #lavalamp {
    left: 490px;
}
#nav li:nth-of-type(8):hover ~ #lavalamp {
    left: 565px;
}

demodownload

更多资料:http://www.script-tutorials.com/pure-css3-lavalamp-menu/

Nike Sb Blazer Zoom Mid Xt Orange White Circuit 876872-819