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 相关文章推荐
javascript 动态生成私有变量访问器
Dec 06 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
Aug 08 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
原生JS获取元素集合的子元素宽度实例
Dec 14 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
Express 配置HTML页面访问的实现
Nov 01 Javascript
JavaScript实现两个数组的交集
Mar 25 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php 特殊字符处理函数
2008/09/05 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
详解Django admin高级用法
2019/11/06 Python
Python如何使用函数做字典的值
2019/11/30 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
给校长的建议书600字
2014/05/15 职场文书
领导干部保密承诺书
2014/08/30 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL