该脚本在FF和IE中运行良好,但在Chrome中则不行。有人可以帮助找到问题吗?
if statmenst似乎不应该在他们应该的时候运行,他们什么都不做。
var top = 285;
var bottom = 650;
var pageheight, maxscroll;
window.onload = function(){
pageheight = document.body.offsetHeight;
maxscroll = pageheight - (bottom+40);
}
window.onscroll = function(){
var element = document.getElementById("guide-menu");
if(window.pageYOffset < top){
element.style.position = "absolute";
element.style.top = "300px";
}
if(window.pageYOffset > top){
element.style.top = "10px";
element.style.position = "fixed";
element.style.marginTop = "0px";
}
if(window.pageYOffset > maxscroll){
element.style.position = "absolute";
element.style.marginTop = (pageheight - bottom - 40) + "px";
}
}
答案 0 :(得分:2)
“top”在chrome中有不同的含义。只是尝试重命名顶级变量。
答案 1 :(得分:2)
“top”变量返回最顶层的浏览器窗口。 Chrome是唯一不支持覆盖此变量的主要浏览器。
将变量重命名为“myTop”非常有效。
此代码效果很好。
var myTop = 285;
var bottom = 650;
var pageheight, maxscroll;
window.onload = function(){
pageheight = document.body.offsetHeight;
maxscroll = pageheight - (bottom+40);
window.onscroll = function()
{
var element = document.getElementById("guide-menu");
if(window.pageYOffset < myTop)
{
element.style.position = "absolute";
element.style.top = "300px";
}
if(window.pageYOffset > myTop)
{
element.style.top = "10px";
element.style.position = "fixed";
element.style.marginTop = "0px";
}
if(window.pageYOffset > maxscroll)
{
element.style.position = "absolute";
element.style.marginTop = (pageheight - bottom - 40) + "px";
}
}
}
顺便说一句,检查您是否为IF语句提供了正确的条件。如果你想要一个随网页滚动的菜单,那么你必须先交换两个条件。