js实现菜单栏上下旋转动画效果

原始图片:
当鼠标放到”首页”上时:
< div  id ="menu2"  class ="menu">
                     < ul >
                         < li ><  a  href  ="index.aspx">  首  页 </ a  ></ li >
                         < li ><  a  href  ="news.aspx">  实时资讯 </ a  ></ li >
                     </ ul >
             </ div >    

      < script  src ="js/jquery-1.7.2.min.js"  type  ="text/javascript"></  script >
       < script  type ="text/javascript"  language  ="javascript">
           var  $jq = jQuery.noConflict();
          $jq(
        $jq(document).ready(  function () {

             /*  1st example     */

             /// wrap inner content of each anchor with first layer and append background layer
            $jq(  "#menu1 li a" ).wrapInner( '<span class="out"></span>'  ).append( '<span class="bg"></span>' );

             // loop each anchor and add copy of text content
            $jq(  "#menu1 li a" ).each( function  () {
                $jq(  '<span class="over">'  + $jq( this ).text() +  '</span>' ).appendTo( this  );
            });

            $jq(  "#menu1 li a" ).hover( function  () {
                 // this function is fired when the mouse is moved over
                $jq(  ".out" ,  this  ).stop().animate({  'top' :  '40px'  }, 250);  // move down - hide
                $jq(  ".over" ,  this  ).stop().animate({  'top' :  '0px'  }, 250);  // move down - show
                $jq(  ".bg" ,  this  ).stop().animate({  'top' :  '0px'  }, 120);  // move down - show

            },  function () {
                 // this function is fired when the mouse is moved off
                $jq(  ".out" ,  this  ).stop().animate({  'top' :  '0px'  }, 250);  // move up - show
                $jq(  ".over" ,  this  ).stop().animate({  'top' :  '-40px'  }, 250);  // move up - hide
                $jq(  ".bg" ,  this  ).stop().animate({  'top' :  '-40px'  }, 120);  // move up - hide
            });


             /*  2nd example     */

            $jq(  "#menu2 li a" ).wrapInner( '<span class="out"></span>'  );

            $jq(  "#menu2 li a" ).each( function  () {
                 try  {
                     var  urlName = window.location.pathname  // 获取当前  URL
                     var  param = urlName.split( "/"  )[1];
                     if  ($jq( this  ).attr( "href" ) == param) {
                        $jq(  this ).attr( "class"  ,  "over" );
                    }
                    $jq(  '<span class="over">'  + $jq( this ).text() +  '</span>' ).appendTo( this  );
                }
                 catch  (e) {
                }
                 finally  {
              }
            });

            $jq(  "#menu2 li a" ).hover( function  () {
                $jq(  ".out" ,  this  ).stop().animate({  'top' :  '40px'  }, 300);  // move down - hide
                $jq(  ".over" ,  this  ).stop().animate({  'top' :  '0px'  }, 300);  // move down - show

            },  function () {
                $jq(  ".out" ,  this  ).stop().animate({  'top' :  '0px'  }, 300);  // move up - show
                $jq(  ".over" ,  this  ).stop().animate({  'top' :  '-40px'  }, 300);  // move up - hide
            });

        })
)
      </ script >  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现菜单栏制作并且在鼠标经过时变色的动画效果,您可以使用HTML、CSS和JavaScript。以下是一个简单的例子: HTML代码: ``` <ul class="menu"> <li><a href="#">菜单项1</a></li> <li><a href="#">菜单项2</a></li> <li><a href="#">菜单项3</a></li> <li><a href="#">菜单项4</a></li> </ul> ``` CSS代码: ``` .menu { list-style: none; margin: 0; padding: 0; } .menu li { display: inline-block; margin-right: 20px; } .menu li a { color: #333; text-decoration: none; padding: 10px; border-radius: 5px; transition: background-color 0.5s ease; } .menu li a:hover { background-color: #555; color: #fff; } ``` JavaScript代码: ``` // 没有JavaScript代码,可以忽略 ``` 这段代码创建了一个无序列表,使用CSS样式将菜单项水平排列,并为菜单项设置动画效果。当鼠标悬停在菜单项上时,会出现背景颜色和文字颜色的变化,从而实现了鼠标经过时变色的动画效果。 ### 回答2: 要实现菜单栏制作,鼠标经过时变色的动画效果,可以按照以下步骤进行: 1. HTML结构:首先,在HTML文件中创建一个菜单栏的容器,可以使用无序列表(<ul>)和列表项(<li>)的结构来实现菜单栏的各个选项。 2. CSS样式:使用CSS来设计菜单栏的样式,包括背景颜色、字体颜色、边框样式等。 设置鼠标经过时的样式,可以使用:hover伪类选择器,通过为鼠标悬停的选项设置不同的颜色或背景变化来实现动画效果。 3. JavaScript代码:使用JavaScript来处理菜单栏的交互功能。通过获取HTML元素和监听事件,当鼠标悬停在选项上时,改变其样式。可以使用addEventListener()方法来监听鼠标的移入和移出事件,并通过修改元素的样式来改变颜色。 具体实现步骤如下: HTML代码: ```HTML <ul class="menu"> <li><a href="#">菜单项1</a></li> <li><a href="#">菜单项2</a></li> <li><a href="#">菜单项3</a></li> <li><a href="#">菜单项4</a></li> </ul> ``` CSS代码: ```CSS .menu { list-style-type: none; margin: 0; padding: 0; } .menu li { display: inline-block; margin-right: 10px; } .menu li a { text-decoration: none; padding: 5px 10px; background-color: #ccc; color: #000; } .menu li a:hover { background-color: #ff0000; color: #fff; } ``` JavaScript代码: ```JavaScript var menuItems = document.getElementsByClassName('menu')[0].getElementsByTagName('a'); for (var i = 0; i < menuItems.length; i++) { menuItems[i].addEventListener('mouseenter', function() { this.style.backgroundColor = '#ff0000'; this.style.color = '#fff'; }); menuItems[i].addEventListener('mouseleave', function() { this.style.backgroundColor = '#ccc'; this.style.color = '#000'; }); } ``` 通过以上步骤,就可以实现菜单栏制作,当鼠标经过菜单选项时,会有颜色变化的动画效果。 ### 回答3: 要实现菜单栏制作,并且在鼠标经过时出现变色的动画效果,可以按照以下步骤进行操作。 首先,需要创建一个菜单栏的HTML结构,使用无序列表(ul)和列表项(li)来定义菜单项。为每个列表项添加相应的标识类名或ID。 接下来,在CSS中设置菜单栏的样式,包括背景颜色、字体样式、宽度等。使用伪类:hover来定义鼠标经过时的样式变化。例如,设置鼠标经过时的背景颜色变为另外一种颜色。 然后,使用JavaScript编写一个事件监听函数,用于处理鼠标经过事件。可以使用DOM选择器获取到菜单栏的每个列表项元素,并为其添加鼠标进入事件监听器。 在事件监听函数中,可以使用元素的classList属性来添加或移除特定的类名,以实现样式变化的动画效果。通过添加特定的类名,可以改变背景颜色、字体样式等。 最后,将这段JavaScript代码与页面的HTML和CSS文件结合起来,在页面加载时执行。以确保在鼠标经过菜单栏时,动画效果得以正确应用。 通过以上步骤,我们可以实现一个菜单栏制作,并在鼠标经过时出现变色的动画效果。当用户将鼠标悬停在菜单项上时,背景颜色会发生变化,提供一种视觉上的反馈,增加用户交互的友好性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值