Javascript 当我向下滚动页面时,如何使div跟随我?

Javascript 当我向下滚动页面时,如何使div跟随我?,javascript,html,css,templates,Javascript,Html,Css,Templates,用户进入该站点 此时,div在页面的中间。 当他向下滚动页面时,div首先开始向上移动,但一旦到达顶部,它就停留在那里 当他进一步向下滚动页面时,div保持在顶部附近,用户始终可以看到 当他将页面一直向上滚动到顶部时,div会再次回到原来的位置。您可以在窗口对象上钩住滚动事件。处理事件时,请查看窗口/文档的垂直滚动位置(有关如何执行此操作,请参见on SO)。对您的div使用绝对定位,并根据需要更新其top FWIW,我会非常小心的。通常,当用户滚动时,这是因为他们想查看与页面内容不同的内容。就

用户进入该站点

此时,div在页面的中间。

当他向下滚动页面时,div首先开始向上移动,但一旦到达顶部,它就停留在那里

当他进一步向下滚动页面时,div保持在顶部附近,用户始终可以看到


当他将页面一直向上滚动到顶部时,div会再次回到原来的位置。

您可以在
窗口
对象上钩住
滚动
事件。处理事件时,请查看窗口/文档的垂直滚动位置(有关如何执行此操作,请参见on SO)。对您的
div
使用绝对定位,并根据需要更新其
top

FWIW,我会非常小心的。通常,当用户滚动时,这是因为他们想查看与页面内容不同的内容。就个人而言,我讨厌在网页上跟着我的盒子。:-)但这并不意味着没有一个好的理由偶尔这样做

非常基本的示例():

//确保它位于正文末尾的脚本标记中,
//就在结束标记之前。
函数getScrollTop(){
if(typeof window.pageYOffset!=“未定义”){
//大多数浏览器
返回窗口.pageYOffset;
}
var d=document.documentElement;
if(d.clientHeight的类型!=“未定义”){
//标准模式下的IE
返回d.scrollTop;
}
//怪癖模式
返回document.body.scrollTop;
}
window.onscroll=函数(){
var-box=document.getElementById(“box”);
var scroll=getScrollTop();
如果(滚动

这是我使用过的您想要的功能的一个旧实现。这是我编写的第一个脚本之一,因此了解JS&jQuery的人很可能会呕吐。我之所以编写它,主要是因为我在网上找到的所有示例都集中在移动DIV上,而不是将其设置为固定,并以增量的方式添加到框的顶部导致了剧烈的运动

基本上,它会更改为“固定”,因为指定的元素是从浏览器窗口顶部开始的自定义边距集,并且在它到达页脚前的自定义偏移量时停止向下移动(我们希望限制followbox不超过边栏空间)


希望它有任何用处,如果现在有一个插件来处理这个问题,你可能会更好地使用它。

你可以看到其他人提供了现成的脚本,但是如果你想自己制作一个(浪费时间)[或者你可能想学习]…这里是一个很好的起点:

var hscroll = (document.all ? document.scrollLeft : window.pageXOffset);
var vscroll = (document.all ? document.scrollTop : window.pageYOffset);

除了专家实现(可能作为插件发布)更优化、更不容易出错,并且更容易连接到不同类型的网站之外:)有没有办法让方框在某一点停止滚动?@AndersonGreen:当然,只要在
onscroll
处理程序中限制
scroll
的值就行了。我试图让它在900像素时停止滚动,当我将此代码添加到onscroll处理程序中时,它似乎可以工作:if(scroll>500){scroll=500;}