用javascript来实现动画导航效果的代码


Posted in Javascript onDecember 16, 2007

谁在用这些导航
google是个大公司,全世界都有google的脚印,韩国的google动画效果非常不错,蓝色理想论坛里已经有人挖过来了,可惜js写的太多了,那自己写一个吧?好,就这么干!
原理
小时候,总喜欢看动画片吧,动画片是怎样实现的呢?记得妈妈说是一张画一张画切换过去(啊?那一部葫芦兄弟要画多少副画啊? -_-! ),其实我们现在做的也是这样,用一个图片,这个图片里有很多个小图,来显示动画轨迹.按时间来移动图片,那图片不是会动了啊?(不知道,表达清楚了没…语文很重要啊!!)
准备
我们需要一张图片,一个大脑,一张会笑的脸(不笑效果就出不来了….)!!下面是我准备的图片(ps水平有限^_^)…
用javascript来实现动画导航效果的代码
代码

我们看到上面的图片,想象下,它动起来是多么的优美啊…

css

.Gnb_btn_div{  

    width:90px;  

    height:75px;  

    overflow:hidden;  

    display:block;  

    position:absolute;  

}       

.Gnb_btn_img{  

    width:100%;  

    height:525px;  

    display:block;  

    overflow:hidden;  

    text-indent:-500px;  

}  

#gnb_btn_01 .Gnb_btn_img {  

    background-image:url(/resources/imgs/img_not_found.png)  

}

javascript
<script type="text/javascript">  

// <![CDATA[  

function GNB(_7c){  

    //初始化一些参数  

    this.iImgNum=7;            //小图片个数  

    this.iImgHeight=75;        //小图片高度  

    this.iOverSpeed=50;        //鼠标经过时候切换的时间  

    this.iOutSpeed=50;        //鼠标离开时候切换的时间  

    this.eventObj=_7c;        //取得图片对象       
    this.MouseOverFlag=false;  

    this.imageIndex=0;  

    if(this.eventObj==null){return;}  

    this.eventObj.parentClass=this;this.eventAssign();  

}       

GNB.prototype.eventAssign=function(){//注册事件  

    this.eventObj.onmouseover=this.menuMouseOver;  

    this.eventObj.onmouseout=this.menuMouseOut;  

};       

GNB.prototype.menuMouseOver=function(){//鼠标经过  

    if(this.parentClass.MouseOverFlag!=false){return;}  

    this.parentClass.MouseOverFlag=true;  

    this.parentClass.clearTimeOut();  

    this.parentClass.menuMouseOverTimer();  

};       

GNB.prototype.menuMouseOut=function(){//鼠标离开  

    this.parentClass.MouseOverFlag=false;  

    this.parentClass.clearTimeOut();  

    this.parentClass.menuMouseOutTimer();  

};       

GNB.prototype.menuMouseOverTimer=function(){//经过图片位置递增  

    var _7d=this;  

    if(this.imageIndex>=this.iImgNum){return;}  

    this.eventObj.scrollTop=this.imageIndex*this.iImgHeight;  

    this.imageIndex++;  

    this.setTimerID=setTimeout(function(){_7d.menuMouseOverTimer();},this.iOverSpeed);  

};       

GNB.prototype.menuMouseOutTimer=function(){////经过图片位置递减  

    var _7e=this;if(this.imageIndex<0){return;}  

    this.eventObj.scrollTop=this.imageIndex*this.iImgHeight;  

    this.imageIndex--;  

    this.setTimerID=setTimeout(function(){_7e.menuMouseOutTimer();},this.iOutSpeed);  

};       

GNB.prototype.clearTimeOut=function(){//取消定时  

    clearTimeout(this.setTimerID);  

};  

// ]]>  

</script>

xhtml
<div class="Gnb_btn_div" id="gnb_btn_01">  

<a class="Gnb_btn_img" href="#1" href="#1">找朋友</a>  

</div>       

<script type="text/javascript">  

// <![CDATA[  

var GNB1=new GNB(document.getElementById("gnb_btn_01"));//实例单个按钮,当然也可以多个  

// ]]>  

</script>

演示地址
Javascript 相关文章推荐
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
Jul 20 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
灵活的理解JavaScript中的this指向
Feb 25 Javascript
js+html5实现canvas绘制网页时钟的方法
May 21 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
利用javascript如何随机生成一定位数的密码
Sep 22 Javascript
不用ajax实现点击文字即可编辑的方法
Dec 16 #Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 #Javascript
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 #Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 #Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 #Javascript
我见过最全的个人js加解密功能页面
Dec 12 #Javascript
文本链接逐个出现的js脚本
Dec 12 #Javascript
You might like
PHPlet在Windows下的安装
2006/10/09 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript 打印页面代码
2009/03/24 Javascript
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python实现矩阵乘法的方法
2015/06/28 Python
python append、extend与insert的区别
2016/10/13 Python
OpenCV实现人脸识别
2017/04/07 Python
python3操作mysql数据库的方法
2017/06/23 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python微信公众号开发简单流程
2018/03/23 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
经典公益广告词
2014/03/13 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android