JS+CSS实现鼠标滑过时动态翻滚的导航条效果


Posted in Javascript onSeptember 24, 2015

本文实例讲述了JS+CSS实现鼠标滑过时动态翻滚的导航条效果。分享给大家供大家参考。具体如下:

这是一款鼠标悬停时动态翻滚的导航条,注意这里用了两个背景图,请等待网页加载完成或多刷新几次,这个是使用JavaScript实现的,不过代码好像是从jQuery里摘出来的,有点像。

运行效果截图如下:

JS+CSS实现鼠标滑过时动态翻滚的导航条效果

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>动态翻滚的导航条</title>
<style type="text/css">
.clear:after{content:"."; display:block; height:0; clear:both; visibility:hidden}.clear{display:inline-block}.clear{display:block}
div#nav{height:32px; background:url(images/YL29.jpg) repeat-x}
div#nav ul{
  width:705px;
  list-style:none;
  margin-top: 0;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: 0px;
}
div#nav ul li{
  float:left;
  height:32px;
  overflow:hidden;
  background-image: url(images/YL30.jpg);
  background-repeat: repeat-y;
  background-position: right 0;
  padding-top: 0;
  padding-right: 1px;
  padding-bottom: 0;
  padding-left: 0px;
  font-family: Arial;
  font-size: 12px;
  line-height: 32px;
  font-weight: bold;
}
div#nav ul li a{
  float:left;
  height:100%;
  width: 77px;
  background:url(images/YL28.jpg) repeat-x;
  color:#fff;
  text-decoration:none;
  padding-top: 0;
  padding-right: 5px;
  padding-bottom: 0;
  padding-left: 5px;
  text-align:center;
}
div#nav ul li a.hover{
  clear:both;
  background-position:0 -32px;
  width: 77px;
}
div#nav ul li.on a{
  background-position:0 -32px;
}
div#nav ul li.nobg{background:none}
/* ]]> */
</style>
</head>
<body>
<div id="nav">
<ul class="clear">
<li><a href="#">三水点靠木</a></li>
<li><a href="#">网页特效</a></li>
<li><a href="#">工具软件</a></li>
<li><a href="#">脚本下载</a></li>
<li><a href="#">菜单导航</a></li>
<li><a href="#">层和布局</a></li>
<li><a href="#">论坛社区</a></li>
<li><a href="#">广告联系</a></li>
<li class="nobg"></li>
</ul>
</div>
<script type="text/javascript"> 
/* <![CDATA[ */
function nav(c, config){
  this.config = config || {speed: 10, num: 2};
  this.container = (typeof(c)=="object") ? c : document.getElementById(c);
  this.lineHeight = this.container.offsetHeight;
  this.scrollTimeId = null;
  var _this = this;  
  this.__construct = function (){
    var inner,el,href;
    inner = _this.container.childNodes[0].innerHTML;
    href = _this.container.childNodes[0].href;
    el = document.createElement("a");
    el.innerHTML = inner;
    el.href = href;
    el.className = 'hover';
    _this.container.appendChild(el);
    _this.container.onmouseover = function (){_this.start()};
    _this.container.onmouseout = function (){_this.end()};
  }();
  this.start = function (){
    _this.clear();
    _this.scrollTimeId = setTimeout(function(){_this.scrollUp();}, _this.config.speed);
  };
  this.end = function (){
    _this.clear();
    _this.scrollTimeId = setTimeout(function(){_this.scrollDown();}, _this.config.speed);
  };
  this.scrollUp = function (){
    var c = _this.container;  
    if(c.scrollTop >= _this.lineHeight){c.scrollTop = _this.lineHeight;return;}
    c.scrollTop += _this.config.num;
    _this.scrollTimeId = setTimeout(function(){_this.scrollUp();}, _this.config.speed);
  };
  this.scrollDown = function (){
    var c = _this.container;
    
    if(c.scrollTop <= 0){c.scrollTop = 0;return;}
    c.scrollTop -= _this.config.num;
    _this.scrollTimeId = setTimeout(function(){_this.scrollDown();}, _this.config.speed);
  };
  this.clear = function (){clearTimeout(_this.scrollTimeId)};
}
(function(){
  var container = document.getElementById('nav');
  var el_li = container.getElementsByTagName('li');
  var arr = [];
  for( var i = 0; i < el_li.length; i++){
    if(el_li[i].className == 'on') continue;
    arr[i] = new nav(el_li[i], {speed: 10, num: 4});
  }
})
();
/* ]]> */
</script>
</body>
</html>

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

Javascript 相关文章推荐
js onpropertychange输入框 事件获取属性
Mar 26 Javascript
jquery tools系列 expose 学习
Sep 06 Javascript
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
JavaScript中__proto__与prototype的关系深入理解
Dec 04 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
Mar 24 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
js select实现省市区联动选择
Apr 17 Javascript
Element Input组件分析小结
Oct 11 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 #Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 #Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 #Javascript
jQuery实现的经典竖向伸缩菜单效果代码
Sep 24 #Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 #Javascript
直接拿来用的15个jQuery代码片段
Sep 23 #Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 #Javascript
You might like
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
jQuery参数列表集合
2011/04/06 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
javascript生成大小写字母
2015/07/03 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
python简单实现刷新智联简历
2016/03/30 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python实现简单flappy bird
2018/12/24 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
python自动点赞功能的实现思路
2020/02/26 Python
为什么是 Python -m
2020/06/19 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
应聘自荐书
2013/10/08 职场文书
金融管理应届生求职信
2014/02/20 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
会议主持词结束语
2015/07/03 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS