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本身的局限性 别让javascript做太多事
Mar 23 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
基于jquery插件实现拖拽删除图片功能
Aug 27 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
原生JS轮播图插件
Feb 09 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
Vue中props的使用详解
Jun 15 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
微信小程序实现图片翻转效果的实例代码
Sep 20 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php smarty的预保留变量总结
2008/12/04 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
js实现文字滚动效果
2016/03/03 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
深入解析Python中的__builtins__内建对象
2016/06/21 Python
带你了解python装饰器
2017/06/15 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Python continue语句实例用法
2020/02/06 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
大门门卫岗位职责
2013/11/30 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
企业标语口号
2014/06/10 职场文书
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技