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开源框架-jQuery使用手册(1)
Mar 10 Javascript
jQuery select控制插件
Aug 17 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
在JavaScript中实现类的方式探讨
Aug 28 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
AngularJs 指令详解及示例代码
Sep 01 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
Nov 29 Javascript
解决vue-router进行build无法正常显示路由页面的问题
Mar 06 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
小程序使用wxs解决wxml保留2位小数问题
Dec 13 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正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python 除法小技巧
2008/09/06 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
详解python中的 is 操作符
2017/12/26 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
python实现超市商品销售管理系统
2019/11/22 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python无损压缩图片的示例代码
2020/08/06 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
新员工培训个人的自我评价
2013/10/09 职场文书
银行职员思想汇报
2013/12/31 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2014年班级工作总结
2014/11/14 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript