用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 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
微信小程序签到功能
Oct 31 Javascript
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
详解如何探测小程序返回到webview页面
May 14 Javascript
微信小程序select下拉框实现效果
May 15 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 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极大的增强功能和性能
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
Yii学习总结之安装配置
2015/02/22 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
JavaScript之自定义类型
2012/05/04 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
javascript this详细介绍
2016/09/19 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
Puppet的一些技巧
2018/09/17 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python 获得13位unix时间戳的方法
2017/10/20 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python表达式的优先级详解
2020/02/18 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
android面试问题与答案
2016/12/27 面试题
秋季婚礼证婚词
2014/01/11 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
高一军训的心得体会
2014/09/01 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书