关于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 相关文章推荐
原生javascript实现获取指定元素下所有后代元素的方法
Oct 28 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
Nov 03 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
JavaScript实现简单的日历效果
Sep 25 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
VUE使用vuex解决模块间传值问题的方法
Jun 01 Javascript
Vuex 使用 v-model 配合 state的方法
Nov 13 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
vue实现倒计时获取验证码效果
Apr 17 Javascript
使用Vue 自定义文件选择器组件的实例代码
Mar 04 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打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
Python学习笔记_数据排序方法
2014/05/22 Python
Python守护线程用法实例
2017/06/23 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
WxPython实现无边框界面
2019/11/18 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
python序列类型种类详解
2020/02/26 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
高中自我鉴定范文
2013/11/03 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
承诺书格式
2014/06/03 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书