JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果


Posted in Javascript onOctober 14, 2015

本文实例讲述了JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果。分享给大家供大家参考。具体如下:

这里演示JavaScript+CSS仿Mootools竖排黑色动画菜单,并非使用了Mootools,但效果却和使用了Mootools差不多,动画效果平滑,操作舒服,给菜单增色不少。

运行效果截图如下:

JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果

在线演示地址如下:

具体代码如下:

<!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>
<title>竖排黑色动画菜单</title>
<style type="text/css">
#menu {
 height: auto;
 width: 350px;
 float: left;
}
body {
 overflow: auto;
 background: #333;
 color: #FFF;
 font: 12px Arial, Helvetica, sans-serif;
}
#menu li {
 display: block;
 list-style-type: none;
}
#menu a {
 font-size: 11px;
 color: #FFF;
 padding-right: 10px;
 padding-left: 10px;
 line-height: 30px;
 text-decoration: none;
 background: #000 url(images/bg.jpg) no-repeat left;
 height: 30px;
 width: 180px;
 display: block;
 outline:0;
 margin-bottom: 5px;
}
#menu a:hover {
 color: #CCFF00;
 background: #000 url(images/bg1.jpg) no-repeat left;
}
</style>
</head>
<body>
 <div id="menu">
 <ul>
  <li><a href="#" title="" class="toggler">JQuery插件</a></li>
  <li><a href="#" class="toggler">Ext 皮肤</a></li>
  <li><a href="#" class="toggler">CSS特效</a></li>
  <li><a href="#">Ajax技巧集</a></li>
 </ul>
 </div>
<script type="text/javascript">
var $ = function(_sId){return typeof _sId == 'string' ? document.getElementById(_sId) : _sId;}
var Each=function (a,fn){for(var i=0;i<a.length;i++)fn.call(a[i],i,a)};
var Tweener = {
  easeNone: function(t, b, c, d) {
    return c*t/d + b;
  },
  easeOutBounce: function(t, b, c, d) {
    if((t/=d) <(1/2.75)) {
      return c*(7.5625*t*t) + b;
    } else if(t <(2/2.75)) {
      return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
    } else if(t <(2.5/2.75)) {
      return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
    } else {
      return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
    }
  }
};
Each($('menu').getElementsByTagName('a'), function(){
 this.onmouseover = function(){
  var b = parseInt(this.style.marginLeft);
  b = isNaN(b) ? 0 : b;
  var t=0,c=30-b,d =10,ttl=10;
  var me = this;
  clearInterval(me.only);
  me.only=setInterval(function (){
  me.style.marginLeft = Tweener.easeNone(t,b,c,d)+'px';
  if(t<d) t++;
  else{
   clearInterval(me.only);
  }
  },ttl)
 }
 this.onmouseout = function(){
  var b = parseInt(this.style.marginLeft);
  b = isNaN(b) ? 0 : b;
  var t=0,c=0-b,d =50,ttl=10;
  var me = this;
  clearInterval(me.only);
  me.only=setInterval(function (){
  me.style.marginLeft = Tweener.easeOutBounce(t,b,c,d)+'px';
  if(t<d) t++;
  else{
   clearInterval(me.only);
  }
  },ttl)
 }
 }
);
</script>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
jquery设置表单元素为不可用的简单代码
Jul 04 Javascript
微信小程序进行微信支付的步骤昂述
Dec 01 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
Jul 24 Javascript
vue实现图片加载完成前的loading组件方法
Feb 05 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
Angular封装搜索框组件操作示例
Apr 25 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
JS实现的最简Table选项卡效果
Oct 14 #Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 #Javascript
JavaScript实现的伸展收缩型菜单代码
Oct 14 #Javascript
smartcrop.js智能图片裁剪库
Oct 14 #Javascript
深入学习JavaScript对象
Oct 13 #Javascript
快速学习JavaScript的6个思维技巧
Oct 13 #Javascript
有关json_decode乱码及NULL的问题
Oct 13 #Javascript
You might like
PHP 类相关函数的使用详解
2013/05/10 PHP
php自定义apk安装包实例
2014/10/20 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
写自已的js类库需要的核心代码
2012/07/16 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
PHP7新特性简述
2017/06/11 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
python编写分类决策树的代码
2017/12/21 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA