window.onscroll=move();
不能加(),否则onscroll赋值就是move()执行的结果,而不是move本身。参考如下代码:
<!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">
<!--
body {
padding:0px;
margin:0px;
}
-->
</style>
<script type="text/javascript" language="javascript">
function addEventHandler(target, type, func) {
if (target.addEventListener)
target.addEventListener(type, func, false);
else if (target.attachEvent)
target.attachEvent("on" + type, func);
else target["on" + type] = func;
} var advIniTop = 0;
function move() {
var layer1 = document.getElementById("Layer1");
if (layer1) layer1.style.top = advIniTop + document.body.scrollTop || document.documentElement.scrollTop + "px";
}
addEventHandler(window, "scroll", move);
</script>
</head><body>
<div id="Layer1" style="position:absolute; left:16px; top:129px; width:180px; height:230px; z-index:1;"> <img src="http://www.csdn.net/Images/logo_csdn.gif" /> </div>
<script type="text/javascript">
for (var i = 0; i < 500; i++) {
document.write("<b>Zswang 路过</b><br />");
}
</script>
</body>
</html>
不能加(),否则onscroll赋值就是move()执行的结果,而不是move本身。参考如下代码:
<!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">
<!--
body {
padding:0px;
margin:0px;
}
-->
</style>
<script type="text/javascript" language="javascript">
function addEventHandler(target, type, func) {
if (target.addEventListener)
target.addEventListener(type, func, false);
else if (target.attachEvent)
target.attachEvent("on" + type, func);
else target["on" + type] = func;
} var advIniTop = 0;
function move() {
var layer1 = document.getElementById("Layer1");
if (layer1) layer1.style.top = advIniTop + document.body.scrollTop || document.documentElement.scrollTop + "px";
}
addEventHandler(window, "scroll", move);
</script>
</head><body>
<div id="Layer1" style="position:absolute; left:16px; top:129px; width:180px; height:230px; z-index:1;"> <img src="http://www.csdn.net/Images/logo_csdn.gif" /> </div>
<script type="text/javascript">
for (var i = 0; i < 500; i++) {
document.write("<b>Zswang 路过</b><br />");
}
</script>
</body>
</html>
=>
document.documentElement.scrollTop
改成
document.documentElement.scrollTop有的浏览器document.body.scrollTop
得到的永远是可见的高度 ,不是变动的
特别是和其他类库一起用的时候
比如jquery,你用后面肯定没有问题
<head>
<SCRIPT LANGUAGE="JavaScript">
var Ntop=0;
function init()
{
Ntop=document.getElementById("img1").style.pixelTop;
}
function move()
{
document.getElementById("img1").style.pixelTop=Ntop+document.body.scrollTop;
} window.onscroll=move;
</SCRIPT>
</head>
<body onload="init()">
<script type="text/javascript">
for (var i = 0; i < 400; i++) {
document.write("<b>skydazzle</b><br />");
}
</script><div id="img1" style="position:absolute; left:16px; top:20px; width:400px; height:258px; z-index:1;">
<img src="http://www.csdn.net/Images/logo_csdn.gif" /> </div></body>
</html>