经常在网上看到的,鼠标在导航上移动时,导航底部的横条会自动移动到鼠标悬浮的导航项上。
效果如下图:
利用jquery的 animate 函数,很好实现。代码很简单!
代码如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试</title> <script src="http://libs.useso.com/js/jquery/1.9.1/jquery.min.js"></script> </head> <body> <div class="nav" style="margin: 100px auto; 960px;"> <a class="active" href="#">首页</a> <a href="#">产品</a> <a href="#">新闻中心</a> <a href="#">关于我们</a> <a href="#">联系我们</a> <a href="#">首页</a> <a href="#">首页</a> <div class="line"></div> </div> <style> .nav{ position:relative; } .nav a{ padding:10px 20px; border-bottom:solid 3px #fff; text-decoration: none; color:#666; } .nav a:hover{ color:#66f; } .nav .active, .nav .active:hover{ color:#f33; } .nav .line{ position:absolute; border-top:solid 2px red; width:0; left:0; top:0; } </style> <script> function navLine(o, bo) { var x = '' + (o.position().top + o.outerHeight() - 2) + 'px'; var y = '' + o.position().left + 'px'; var w = '' + o.outerWidth() + 'px'; var h = '2px'; $('.nav .line').stop(); if (bo) { $('.nav .line').css({w, height:h, top:x, left:y}); } else { $('.nav .line').animate({w, height:h, top:x, left:y}); } } $(function(){ navLine($('.nav .active'), true); $('.nav a').hover(function(){ navLine($(this)); }, function(){ navLine($('.nav .active')); }); }); </script> </body> </html>