用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 相关文章推荐
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
Jquery方式获取iframe页面中的 Dom元素
May 07 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
13个PHP函数超实用
Oct 21 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
jQuery点击其他地方时菜单消失的实现方法
Apr 22 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
基于JavaScript定位当前的地理位置
Apr 11 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
Feb 18 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
Jan 02 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
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
传智播客学习之java 反射
2009/11/22 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
用Vue.js实现监听属性的变化
2016/11/17 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
Vue中props的详解
2019/05/16 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python中的字典使用分享
2016/07/31 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python实现简单坦克大战
2020/03/27 Python
使用python计算三角形的斜边例子
2020/04/15 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
详细分析Python垃圾回收机制
2020/07/01 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
python re的findall和finditer的区别详解
2020/11/15 Python
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
linux面试题参考答案(11)
2012/05/01 面试题
党支部换届选举方案
2014/05/08 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
公司表扬信格式
2015/05/04 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏