关于Blog顶部的滚动导航条代码


Posted in Javascript onSeptember 25, 2006

不少朋友通过各种方式问我要 Blog 顶部的滚动导航菜单的代码。其实也没什么特别的,但既然有需求,我就还是把这部分代码整理出来,供大家参考。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<HEAD> 
<TITLE>Float Div</TITLE> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
#zealNavigatorBar { 
    position: absolute; 
    z-index: 100; 
    width: 760px; 
    height: 32px; 
    line-height: 32px; 
    top: 0px; 
    left: 0px; 
    padding: 0px; 
    margin: 0px; 
    border-bottom:1px solid #646465; 
    background-color: #C0C0C3; 
} 
</style> 
</HEAD> <BODY> 
<div id=zealNavigatorBar> 
 <a href="/">Anything here</a>  
 <a href="/">Anything here</a>  
 <a href="/">Anything here</a>  
</div> 
<script language="JavaScript"> 
for(var t=0;t<1000;t++) document.writeln('Test content: line '+t+'<br />'); 
</script> 
<script language="JavaScript"> 
var g_myBodyInstance = document.body; 
var g_myBodyInstanceString = "document.body"; 
if(document.compatMode != "BackCompat"){ 
    // for looser.dtd 
    g_myBodyInstance = document.documentElement; 
    g_myBodyInstanceString = "document.documentElement"; 
} 
var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 && 
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0; 
var isMinNS5 = (navigator.appName.indexOf("Netscape") >= 0 && 
                parseFloat(navigator.appVersion) >= 5) ? 1 : 0; 
var isMinIE4 = (document.all) ? 1 : 0; 
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0; 
var isMacIE = (isMinIE4 && navigator.userAgent.indexOf("Mac") >= 0) ? 1 : 0; 
var getFFVersion=navigator.userAgent.substring( 
                    navigator.userAgent.indexOf("Firefox")).split("/")[1]; 
//extra height in px to add to iframe in FireFox 1.0+ browsers 
var FFextraHeight=getFFVersion<1.5? 16 : 0; 

function getLayer(name) { 
  if (isMinNS5) 
    return document.getElementById(name); 
  else if (isMinIE4) 
    return eval('document.all.' + name); 
  else if (isMinNS4) 
    return findLayer(name, document); 
  return null; 
} 
function findLayer(name, doc) { 
  var i, layer; 
  for (i = 0; i < doc.layers.length; i++) { 
    layer = doc.layers[i]; 
    if (layer.name == name) 
      return layer; 
    if (layer.document.layers.length > 0) { 
      layer = findLayer(name, layer.document); 
      if (layer != null) 
        return layer; 
    } 
  } 
  return null; 
} 
function moveLayerTo(layer, x, y) { 
  if (isMinIE4) { 
    layer.style.left = x; 
    layer.style.top  = y; 
  } 
  else if (isMinNS5) { 
    layer.style.left = x+'px'; 
    layer.style.top  = y+'px'; 
  } 
  else if (isMinNS4) 
    layer.moveTo(x, y); 
} 
function getPageLeft(layer) { 
  if (isMinIE4||isMinNS5) 
    return(layer.offsetLeft); 
  else if (isMinNS4) 
    return(layer.pageX); 
  return(-1); 
} 
function getPageTop(layer) { 
  if (isMinIE4||isMinNS5) 
    return(layer.offsetTop); 
  else if (isMinNS4) 
    return(layer.pageY); 
  return(-1); 
} 
function getPageScrollX() { 
  if (isMinIE4||isMinNS5) 
    return(g_myBodyInstance.scrollLeft); 
  else if (isMinNS4) 
    return(window.pageXOffset); 
  return(-1); 
} 
function getPageScrollY() { 
  if (isMinIE4||isMinNS5) 
    return(g_myBodyInstance.scrollTop); 
  else if (isMinNS4) 
    return(window.pageYOffset); 
  return(-1); 
} 
var g_p_zealNavigatorBar = null; 
g_p_zealNavigatorBar = getLayer('zealNavigatorBar'); 
if(!isMinIE4){g_p_zealNavigatorBar.style.position = 'fixed';} 
function reposzealNavigatorBar(){ 
    if(isMinIE4){ 
        try{ 
            moveLayerTo(g_p_zealNavigatorBar,  
                        getPageLeft(g_p_zealNavigatorBar),  
                        getPageScrollY()); 
        }catch(e){} 
    } 
} 
window.onresize = reposzealNavigatorBar; 
window.onscroll = reposzealNavigatorBar; 
window.onload = reposzealNavigatorBar; 
</script> 
</BODY> 
</HTML>
Javascript 相关文章推荐
js取两个数组的交集|差集|并集|补集|去重示例代码
Aug 07 Javascript
javascript内存管理详细解析
Nov 11 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
Mar 04 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
jQuery EasyUI常用数据验证汇总
Sep 18 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 Javascript
JavaScript实现栈结构详细过程
Dec 06 Javascript
初学prototype,发个JS接受URL参数的代码
Sep 25 #Javascript
浅谈JavaScript中面向对象技术的模拟
Sep 25 #Javascript
理解JavaScript中的事件
Sep 23 #Javascript
Valerio 发布了 Mootools
Sep 23 #Javascript
prototype.js的Ajax对象
Sep 23 #Javascript
在Javascript中为String对象添加trim,ltrim,rtrim方法
Sep 22 #Javascript
如何实现JS函数的重载
Sep 22 #Javascript
You might like
PHP中的float类型使用说明
2010/07/27 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
JS高级笔记
2011/07/13 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
python、Matlab求定积分的实现
2019/11/20 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
办公室员工岗位工作职责
2014/03/10 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
MySQL优化及索引解析
2022/03/17 MySQL