Jquery学习系列-制作Menu
这里仿照GANESH的例子利用JQuery和一些第三方的库做了一个Lavalamp的效果,苦恼的是由于要引用第三方的js,没有办法在博客里给大家直接秀出效果来!只能辛苦大家去GANESH查看lavalamp的效果,这里先给大家展示一个截图:
当鼠标移动的时候,阴影会随着移动并显示动态的效果,具体实现方法如下:
首先,我们构建基本的HTML元素:
<ul class="lavaLamp"> <li><a href="#">Home</a></li> <li><a href="#">Plant a tree</a></li> <li><a href="#">Travel</a></li> <li><a href="#">Ride an elephant</a></li> </ul> <ul>与<li>是通常构建菜单的方式,<ul>用来代表一个菜单,<li>用来代表具体的菜单项,事实上我们还有另外一个<li>用来表示当前菜单项,这个我们会通过后台的javascript脚本来添加。
其次,现在我们要添加CSS了:<li class="back"><div class="left"></div></li>
/* Styles for the entire LavaLamp menu */ .lavaLamp { position: relative; height: 29px; width: 421px; background: url("../image/bg.gif") no-repeat top; padding: 15px; margin: 10px 0; overflow: hidden; } /* Force the list to flow horizontally */ .lavaLamp li { float: left; list-style: none; } /* Represents the background of the highlighted menu-item. */ .lavaLamp li.back { background: url("../image/lava.gif") no-repeat right -30px; width: 9px; height: 30px; z-index: 8; position: absolute; } .lavaLamp li.back .left { background: url("../image/lava.gif") no-repeat top left; height: 30px; margin-right: 9px; } /* Styles for each menu-item. */ .lavaLamp li a { position: relative; overflow: hidden; text-decoration: none; text-transform: uppercase; font: bold 14px arial; color: #fff; outline: none; text-align: center; height: 30px; top: 7px; z-index: 10; letter-spacing: 0; float: left; display: block; margin: auto 10px; } 这段代码可以直接放在html画面里或者单独的CSS文件里,我们首先使用background: url("../image/bg.gif") no-repeat top;给菜单<ul>添加背景,并设置了一些其他的基本属性,比如height, width, padding, margin等等。
接着,设置<li>的样式,通过float: left,我们可以控制菜单项横向显示而不是竖向显示,紧接着设置了显示当前项的<li>的CSS,这里使用了一种叫做SlidingDoors的CSS技术,之后的文章里我会给大家详细解释。
最后,我们针对锚点的样式进行了设置
第三项,我们开始添加Javascript脚本,这里的诀窍是基于Jquery之上,我们使用了两个第三方的library,lavalamp以及Easing,你只需要添加一行代码就可以实现动态的menu的效果:
<script type="text/javascript"> $(function() { $(".lavaLamp").lavaLamp({ fx: "backout", speed: 700 })}); </script>