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 相关文章推荐
jquery.validate分组验证代码
Mar 17 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
js同源策略详解
May 21 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 Javascript
Vue.js实现列表清单的操作方法
Nov 15 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
javaScript动态添加Li元素的实例
Feb 24 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 Javascript
原生JS利用transform实现banner的无限滚动示例代码
Jun 15 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
缅甸的咖啡简史
2021/03/04 咖啡文化
PHP中str_replace函数使用小结
2008/10/11 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
微信小程序支付PHP代码
2018/08/23 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
django中嵌套的try-except实例
2020/05/21 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
给幼儿园老师的表扬信
2014/01/19 职场文书
师德师风建设方案
2014/05/08 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL