首页 > 代码库 > JS实现导航条效果——current跟随鼠标hover移动

JS实现导航条效果——current跟随鼠标hover移动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><style type="text/css">body{ font-size:100%; font-family:"Microsoft YaHei","Arial"; background:#fff;}#nav{ position:relative; width:832px; _width:835px; margin:100px auto 0 auto; border-bottom:2px #ddd solid;}#nav .nav-menu{ height:50px;}#nav .nav-menu a{ display:block; float:left; height:50px; padding:0 40px; line-height:50px; color:#666; font-size:16px; text-decoration:none;}#nav .nav-current{ position:absolute; bottom:-2px; height:2px; overflow:hidden; background:#80b600;}</style><script type="text/javascript" src="http://www.webskys.com/skin/tomato/js/jquery.js"></script><script type="text/javascript">$(function(){    var cur_width=$(".current").innerWidth();//当前a的宽度    var cur_left=$(".current").position().left;//当前a的左位置        $(".nav-current").css({width:cur_width,left:cur_left})//当前的底部线    $("#nav").find("a").hover(            function(){                        $(".nav-current").stop().animate(                {left: $(this).position().left,                width: $(this).innerWidth                },300);            } , function() {                    $(".nav-current").stop().animate({                    width:cur_width,left:cur_left                    } , 300);                }        )    })</script></head><body><div id="nav"><div class="nav-menu"><a href="#">首页</a><a href="#" class="current">了解我们</a><a href="#">产品展示</a><a href="#">服务报价</a><a href="#">最新消息</a><a href="#">联系方式</a></div><div class="nav-current"></div></div></body></html>

 

初始效果图

当鼠标放到a上时,绿色的线会动画移动到该a下


 

知识点:

  hover(over,out)一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
     

  当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测(例如,处在div中的图像),如果是,则会继续保持“悬停”状态,而不触发移出事件(修正了使用mouseout事件的一个常见错误)。

参数 :
  over (Function) : 鼠标移到元素上要触发的函数
  out (Function): 鼠标移出元素要触发的函数

示例 :
鼠标悬停的表格加上特定的类

jQuery 代码: 

$("td").hover(  function () {    $(this).addClass("hover");  },  function () {    $(this).removeClass("hover");  });