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 相关文章推荐
php跨域调用json的例子
Nov 13 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
如何通过JS实现转码与解码
Feb 21 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
May 27 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
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中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
Python三级菜单的实例
2017/09/13 Python
Python3计算三角形的面积代码
2017/12/18 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
基于python指定包的安装路径方法
2018/10/27 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
介绍下WebSphere的安全性
2013/01/31 面试题
为什么需要版本控制
2016/10/28 面试题
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python