用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 dialog的用法详细解析
Dec 19 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
利用jQuery实现打字机字幕效果实例代码
Sep 02 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
JS跳转手机站url的若干注意事项
Oct 18 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
JavaScript如何把两个数组对象合并过程解析
Oct 10 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
vue项目中自定义video视频控制条的实现代码
Apr 26 Javascript
Vue中component标签解决项目组件化操作
Sep 04 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模块 Memcached功能多于Memcache
2011/06/14 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
jQuery实现可编辑的表格
2019/12/11 jQuery
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
python socket 超时设置 errno 10054
2014/07/01 Python
python 统计代码行数简单实例
2017/05/04 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
浅析Python面向对象编程
2020/07/10 Python
巴西购物网站:Estrela10
2018/12/13 全球购物
体现团队精神的口号
2014/06/06 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
材料物理专业求职信
2014/09/01 职场文书
六查六看自查报告
2014/10/14 职场文书
买房协议书范本
2014/10/23 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
SQL 聚合、分组和排序
2021/11/11 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL