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 相关文章推荐
js无刷新操作table的行和列
Mar 27 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
javascript动画算法实例分析
Jul 31 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
Vue表单类的父子组件数据传递示例
May 03 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
原生JS运动实现轮播图
Jan 02 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
解决中英文字符串长度问题函数
2007/01/16 PHP
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
关于Python中异常(Exception)的汇总
2017/01/18 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
岗位职责的含义
2013/11/17 职场文书
现金会计岗位职责
2013/12/05 职场文书
农村党员一句话承诺
2014/05/30 职场文书
八一建军节慰问信
2015/02/14 职场文书