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 jsonp 使用示例代码
Aug 12 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
Dec 29 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
Mar 30 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
js实现水平滚动菜单导航
Jul 21 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
layui默认选中table的CheckBox复选框方法
Sep 19 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JS的get和set使用示例
2014/02/20 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
Python之PyUnit单元测试实例
2014/10/11 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
wxPython实现文本框基础组件
2019/11/18 Python
python中with用法讲解
2020/02/07 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
创联软件面试题笔试题
2012/10/07 面试题
计算机软件个人的自荐信范文
2013/12/01 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
学校个人对照检查材料
2014/08/26 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python