jQuery实现背景滑动菜单

 更新时间:2016年12月02日 17:16:08   作者:船长op  
本篇文章分享了基于jQuery实现背景滑动菜单的实例代码。感兴趣的朋友可以下载实例运行,下面就跟小编一起来看看吧

话不多说,直接附上源码,仅供大家参考

<div class="menu">
 <ul id="menu">
 <li><a href="#">JavaScript</a></li>
 <li value="1"><a href="#">Graphic Design</a></li>
 <li><a href="#">HTML</a></li>
 <li><a href="#">User Interface</a></li>
 <li><a href="#">CSS</a></li>
 </ul>
 <div id="slide"></div>
</div>
* {margin:0; padding:0}
body {font:14px Helvetica, sans-serif; font-weight:bold; background:#FFF}
.menu {position:relative; background:url(images/bg.gif) no-repeat; height:35px; width:459px}
.menu ul {list-style:none; z-index:10; position:absolute; z-index:100; padding:9px 5px}
.menu li {float:left}
.menu a, .menu a:active, .menu a:visited, .menu a:hover {text-decoration:none; color:#FFF; padding:10px}
#slide {position:absolute; top:6px; height:24px; background:#89957a; z-index:10;}
(function($){
 $.fn.extend({
 bgslide:function(value){
 //可选参数
 value=$.extend({
 "fw":12,
 "sw":2,
 "ftime":100,
 "stime":300
 },value);
 //初始化背景的位置
 var liw = $("ul li:eq(0)",value.menu).width();//获取第一个li的宽
 var $slide = $(this).children("div"); 
 $slide.css({"width":liw,"left":"5"});
 //悬停时执行动画
 function hani(w,l){
 $slide.stop(true) //很关键的一句话,当悬停时,让正在执行的动画,和列队中的动画,都取消;防止鼠标不停滑动时的bug;
 .animate({"width":w,"left":l+value.fw},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);
 } 
 //离开时执行动画 
 function oani(){
 $slide.stop(true)
 .animate({"width":liw,"left":"5"},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);; 
 }
 $("ul li",this).hover(function(){
 var w = $(this).width(); //获取当前li的宽
 var l = $(this).position().left; //获取当前li的横坐标 
 if(!$(this).index()==0){ //鼠标悬停在第一个LI时,不发生动画
 hani(w,l);
 }
 },function(){
 oani();
 });
 } 
 })
})(jQuery);

html结构思路:

  div:放置一个背景图层,相对定位;

  UL:放置菜单内容,绝对定位;

  div:放置滑动的背景层,绝对定位;

JQuery思路分析:

  鼠标悬停到每一个LI的时候,让这个滑动的背景层,通过水平移动动画,来定位到当前这个LI的地方;并有一个左右晃动效果;鼠标离开时,让背景层滑动到初始位置;

鼠标悬停时:

  1.获取当前LI相对于最外层DIV的水平坐标,即横坐标值;

  2.让滑动的背景层的横坐标正好等于当前LI的横坐标;

  3.执行一个左右晃动的动画,即改变当前水平坐标的值;

鼠标离开时:

  1.让背景层滑动到初始位置,即改变横坐标的值,为初始值;

下载Demo地址:http://xiazai.jb51.net/yuanma/myslidebgmenu(jb51.net).rar

以上就是本文的全部内容,希望对大家有所帮助,谢谢对脚本之家的支持!

相关文章

  • jquery自动补齐功能插件flexselect用法示例

    jquery自动补齐功能插件flexselect用法示例

    这篇文章主要介绍了jquery自动补齐功能插件flexselect用法,结合实例形式分析了flexselect实现自动补齐功能的操作步骤与相关实现技巧,需要的朋友可以参考下
    2016-08-08
  • jQuery插件实现表格隔行换色且感应鼠标高亮行变色

    jQuery插件实现表格隔行换色且感应鼠标高亮行变色

    实现表格隔行换色,且感应鼠标行变色的方法有很多,在本文将为大家介绍的是使用jQuery插件来实现,具体如下,感兴趣的朋友可以练练手
    2013-09-09
  • jQuery中not()方法用法实例

    jQuery中not()方法用法实例

    这篇文章主要介绍了jQuery中not()方法用法,实例分析了not()方法的功能、定义及删除与指定表达式匹配的元素的使用技巧,需要的朋友可以参考下
    2015-01-01
  • jQuery插件扩展测试实例

    jQuery插件扩展测试实例

    这篇文章主要介绍了jQuery插件扩展方法,结合一个动态改变元素样式功能实例分析了jQuery插件扩展的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • jquery做的一个简单的屏幕锁定提示框

    jquery做的一个简单的屏幕锁定提示框

    这篇文章主要介绍了使用jquery做的一个简单的屏幕锁定提示框,需要的朋友可以参考下
    2014-03-03
  • Jquery chosen动态设置值实例介绍

    Jquery chosen动态设置值实例介绍

    Jquery chosen一款选择插件,支持检索,多选,但不支持输入效果,下面与大家分享下其使用示例,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • jquery轮播图插件使用方法详解

    jquery轮播图插件使用方法详解

    这篇文章主要为大家详细介绍了jquery轮播图插件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • jQuery超简单遮罩层实现方法示例

    jQuery超简单遮罩层实现方法示例

    这篇文章主要介绍了jQuery超简单遮罩层实现方法,结合实例形式详细分析了jQuery遮罩层相关属性样式动态控制操作技巧,需要的朋友可以参考下
    2018-09-09
  • jQuery 获取对象 定位子对象

    jQuery 获取对象 定位子对象

    jQuery 获取对象 定位子对象,学习jquery 定位子对象的朋友可以参考下。
    2010-05-05
  • jQuery之折叠面板的深入解析

    jQuery之折叠面板的深入解析

    本篇文章是对jQuery中的折叠面板进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论