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 相关文章推荐
在JavaScript中通过URL传递汉字的方法
Apr 09 Javascript
js函数般调用正则
Apr 08 Javascript
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
JavaScript代码判断点击第几个按钮
Dec 13 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
Jun 29 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
JS全角与半角转化实例(分享)
Jul 04 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
vue.js实现图书管理功能
Sep 24 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.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
vue组件生命周期详解
2017/11/07 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
python算法学习之基数排序实例
2013/12/18 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
python进行两个表格对比的方法
2018/06/27 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
索尼巴西商店:Sony巴西
2019/06/21 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
租房协议书范本
2014/04/09 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
社区党建工作总结2015
2015/05/13 职场文书
离婚起诉状范本
2015/05/19 职场文书