javascript实现超炫的向上滑行菜单实例


Posted in Javascript onAugust 03, 2015

本文实例讲述了javascript实现超炫的向上滑行菜单。分享给大家供大家参考。具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JS实现文字上下滑动导航</title>
<style type="text/css"> 
body { margin:0; background:#66FF99; }
ul { padding-left:0; margin:0; }
li { list-style:none; }
#nav { height:40px; background:#900; margin-top:50px; }
#nav ul { width:240px; height:40px; margin:0 auto; }
#nav li {height:40px; width:240px;}
#nav a { float:left; width:240px;position:relative; height:40px; overflow:hidden; font-size:14px; color:#e0e03a; text-decoration:none; cursor:pointer; }
#nav strong { float:left;width:240px; }
#nav span { float:left;width:200px; padding:0 20px; height:40px; line-height:40px; background:#900; clear:both; white-space:nowrap;}
#nav .active,#nav .current span { background:#600; color:#fff; }
#nav .current .active { color:#e0e03a; }
</style>
<script> 
window.onload=function()
{
 var oDiv=document.getElementById('nav');
 var aStrong=oDiv.getElementsByTagName('strong');
 var aA=oDiv.getElementsByTagName('a');
 var iTarget=oDiv.getElementsByTagName('li')[0].offsetHeight;
 for(var i=0; i<aStrong.length; i++)
 {
  aA[i].style.width=aStrong[i].style.width=aStrong[i].getElementsByTagName('span')[0].offsetWidth+'px';
  aStrong[i].style.position='absolute';
  aStrong[i].style.top=aStrong[i].style.left=0;
  aStrong[i].onmouseover=function()
  {
   startMove(this, -iTarget);
  };
  aStrong[i].onmouseout=function()
  {
   startMove(this, 0);
  };
 }
};
function startMove(obj,target)
{
 clearInterval(obj.iTime);
 obj.iTime=setInterval(function(){
  if(obj.offsetTop==target)
  {
   clearInterval(obj.iTime);
  }
  else
  {
   var iSpeed=(target-obj.offsetTop)/4;
   iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
   obj.style.top=obj.offsetTop+iSpeed+'px';
  }
 }, 30);
}
</script>
</head>
<body>
<div id="nav">
 <ul>
  <li class="current">
   <a href="#">
    <strong>
     <span>首页</span>
     <span class="active">首页</span>
    </strong>
   </a>
  </li>
  <li>
   <a href="#">
    <strong>
     <span>前端开发课程</span>
     <span class="active">前端开发课程</span>
    </strong>
   </a>
  </li>
  <li>
   <a href="#">
    <strong>
     <span>妙味视频教程</span>
     <span class="active">妙味视频教程</span>
    </strong>
   </a>
  </li>
  <li>
   <a href="#">
    <strong>
     <span>周末班上课安排</span>
     <span class="active">周末班上课安排</span>
    </strong>
   </a>
  </li>
  <li>
   <a href="#">
    <strong>
     <span>结课标准</span>
     <span class="active">结课标准</span>
    </strong>
   </a>
  </li>
  <li>
   <a href="#">
    <strong>
     <span>联系妙味</span>
     <span class="active">联系妙味</span>
    </strong>
   </a>
  </li>
 </ul>
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
jQuery .tmpl(), .template()学习资料小结
Jul 18 Javascript
禁止选中文字兼容IE、Chrome、FF等
Sep 04 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
Nov 19 Javascript
jquery插件autocomplete用法示例
Jul 01 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
详解微信小程序中组件通讯
Oct 30 Javascript
vue 父组件中调用子组件函数的方法
Jun 06 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
JS如何操作DOM基于表格动态展示数据
Oct 15 Javascript
提高jQuery性能优化的技巧
Aug 03 #Javascript
jquery简单实现幻灯片的方法
Aug 03 #Javascript
JS拖拽插件实现步骤
Aug 03 #Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 #Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 #Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 #Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 #Javascript
You might like
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
监督检查工作方案
2014/05/28 职场文书
工程索赔意向书
2014/08/30 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
工会文体活动总结
2015/05/07 职场文书
离职证明格式样本
2015/06/12 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
PHP新手指南
2021/04/01 PHP
vue实现简单数据双向绑定
2021/04/28 Vue.js