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

  不少朋友通过各种方式问我要 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>