• JavaScript
  • Graphic Design
  • " />

    广州鸿名健康科技有限公司

    健康生活

    • 健康生活

    jQuery实现背景滑动菜单

    网络编程 jQuery实现背景滑动菜单 06-22

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

    <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.gimoo.net/yuanma/myslidebgmenu(gimoo.net).rar

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

    JQuery 动态生成Table表格实例代码
    JQuery动态生成Table表格主要用到了JQuery中的append和appendto的方法,具体代码如下:!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"htmlh

    jQuery 选择符详细介绍及整理
    jQuery选择符CSS选择符,如:$('#title1li')为取得ID为title1(#title)的子元素()中所有的列表项(li)。$('#title1li:not(.class1)')为取得ID为title的后代元素中没有(not)class

    jQuery图片轮播实现并封装(一)
    利用面向对象自己动手写了一个封装好的jquery轮播对象,可满足一般需求,需要使用时只需调用此对象的轮播方法即可。demo:https://github.com/zsqosos/shopweb


    编辑:广州鸿名健康科技有限公司

    标签:鼠标,横坐标,背景,动画,第一个

    分享:
    • MySQL权限回收失败的原因及解决方法(mysql不能回收权限)
    • Oracle数据库007–00980应急技术指南(oracle_00980)
    • 解答oracle中文问题一个叹号引发的挑战(oracle中文疑问号)
    • MySQL分页操作如何实现上下分页(mysql上下分页)
    • Oracle EBS实施调拨在效率与安全性上兼顾(oracle ebs调拨)
    • 深入分析如何比较MySQL两张大表的性能与差异(mysql两张大表比较)
    • 轻松搞定教你如何彻底卸载MySQL云数据库(mysql yun卸载)
    • Oracle数据库中实现五张表联接查询(oracle五个表连接)
    • Oracle10g的应用高效管理大型数据库(oracle10g应用)
    • 打造个性风格,MySQL T恤让你与众不同(mysql个性t恤)
    © 祺平科技 • 版权所有 粤ICP备2024276634号-1     技术支持  ZMCMS.COM