JS+CSS实现带有碰撞缓冲效果的竖向导航条代码


Posted in Javascript onSeptember 15, 2015

本文实例讲述了JS+CSS实现带有碰撞缓冲效果的竖向导航条代码。分享给大家供大家参考。具体如下:

这是一款碰撞缓冲效果的导航条,JavaScript妙味课堂奉献给大家的作品,很不错的竖向菜单,希望大家喜欢。所用技术是JS和CSS。

运行效果截图如下:

JS+CSS实现带有碰撞缓冲效果的竖向导航条代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<title>碰撞缓冲效果的导航条</title>
<style type="text/css">
* { padding: 0; margin: 0; }
li { list-style: none; }
body { background: #fff; }
ul { width: 202px; margin: 40px auto 0; position: relative; }
li { width: 200px; height: 30px; line-height: 30px; padding-left: 10px; border: 1px solid #ccc; border-left: 3px solid #666; font-size: 14px; color: #333; margin-bottom: 5px; position: relative; z-index: 2; }
a { color: #333; text-decoration: none; }
.active { font-weight: bold; background: #fff0f0; }
#bar { width: 10px; padding-left: 0; background: #cc6699; border: 1px solid #cc6699; position: absolute; top: 0; left: -14px; z-index: 3; }
</style>
<script>
var obj = null;
var aLis = null;
var oBar = null;
var iTime = null;
var iSpeed = 0;
var iAcc = 3;
var onOff = 0;
var iPrev = 0;
var iNext = 0;
function goTime()
{
 for(var i = 0; i < aLis.length; i+=1)
 {
  if(aLis[i] === this)
  {
   var iTarget = (aLis[0].offsetHeight + 5) * i;
   iNext = i;
   onOff = iNext - iPrev;
   if(iTime)
   {
    clearInterval(iTime);
   }
   if(onOff>=0)
   {
    iTime = setInterval("elasticity("+ iTarget +")",35);
   }
   else
   {
    iTime = setInterval("postpone("+ iTarget +")",35);
   }
   iPrev = iNext;
  }
  aLis[i].className="";
  this.className="active";
 }
}
function elasticity(target)
{
 var top = oBar.offsetTop;
 iSpeed+=iAcc;
 top += iSpeed;
 if(top >= target)
 {
  iSpeed*=-0.7;
  if(Math.abs(iSpeed)<=iAcc)
  {
   clearInterval(iTime);
   iTime=null;
  }
  top=target;
 }
 oBar.style.top = top + "px";
}
function postpone(target)
{
 if(oBar.offsetTop===target)
 {
  clearInterval(iTime);
  iTime=null;
 }
 else
 {
  iSpeed = (target - oBar.offsetTop)/4;
  oBar.style.top = oBar.offsetTop + iSpeed + "px";
 }
}
window.onload = function(){
 obj = document.getElementById("nav");
 aLis = obj.getElementsByTagName("li");
 oBar = document.getElementById("bar");
 for(var i = 0; i < aLis.length; i+=1)
 {
  if(aLis[i].id!="bar")
  {
   aLis[i].onmouseover = goTime;
  }
 }
};
</script>
</head>
<body>
<ul id="nav">
 <li class="active"><a href="#">首页</a></li>
 <li><a href="#">三水点靠木</a></li>
 <li><a href="#">妙味课程</a></li>
 <li><a href="#">联系方式</a></li>
 <li id="bar">
</ul>
</body>
</html>

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

Javascript 相关文章推荐
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
javascript创建函数的20种方式汇总
Jun 23 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
使用node搭建自动发图文微博机器人的方法
Mar 22 Javascript
VUE项目初建和常见问题总结
Sep 12 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 Javascript
vue实现移动端input上传视频、音频
Aug 18 Javascript
vue中的循环对象属性和属性值用法
Sep 04 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 #Javascript
基于jQuery滑动杆实现购买日期选择效果
Sep 15 #Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 #Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 #Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
Sep 15 #Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 #Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 #Javascript
You might like
用PHP实现登陆验证码(类似条行码状)
2006/10/09 PHP
如何给phpadmin一个保护
2006/10/09 PHP
简单采集了yahoo的一些数据
2007/02/14 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
python查找第k小元素代码分享
2013/12/18 Python
星球大战与Python之间的那些事
2016/01/07 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
Python自省及反射原理实例详解
2020/07/06 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
班训口号大全
2014/06/18 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
暑期家教宣传单
2015/07/14 职场文书
社区服务活动感想
2015/08/11 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书