用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 相关文章推荐
javascript getElementsByTagName
Jan 31 Javascript
jQuery操作checkbox选择(list/table)
Apr 07 Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Sep 04 Javascript
jquery图片切换插件
Mar 16 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
Nov 14 Javascript
利用jsonp解决js读取本地json跨域的问题
Dec 11 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
node.js使用express框架进行文件上传详解
Mar 03 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
分享Angular http interceptors 拦截器使用(推荐)
Nov 10 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
php 购物车的例子
2009/05/04 PHP
php中error与exception的区别及应用
2014/07/28 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP7变量处理机制修改
2021/03/09 PHP
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python字符串格式化输出方法分析
2016/04/13 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
python 实现的车牌识别项目
2021/01/25 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
售后服务承诺书
2014/03/26 职场文书
python Polars库的使用简介
2021/04/21 Python