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 相关文章推荐
小议Function.apply() 之一------(函数的劫持与对象的复制)
Nov 30 Javascript
参考:关于Javascript中实现暂停的几篇文章
Mar 04 Javascript
JavaScript中的16进制字符(改进)
Nov 21 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
Nov 20 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
vue项目强制清除页面缓存的例子
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
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
Python实现从订阅源下载图片的方法
2015/03/11 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python在线运行代码助手
2016/07/15 Python
Python切片操作实例分析
2018/03/16 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
精细化工应届生求职信
2013/11/17 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
技校毕业生自荐信
2014/06/03 职场文书
大学生赌博检讨书
2014/09/22 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS