Javascript 根据页面滚动更改div位置
我有下面的代码,一旦元素scrollTop大于一个数字,就会将div的位置更改为fixed。我试图修改这个脚本或者找到一个不同的解决方案,这样div将在一个范围内滚动,并在某个点停止滚动(这样div就不会离开页面或者与页脚元素重叠) 我不知道是否正确的方法是,如果scrollTop大于150,那么位置=固定,如果scrollTop大于600,那么位置返回到绝对位置,或者是否有更好的方法,比如从底部的距离 我使用MooTools,而不是jQuery。我知道有一些jQuery选项/插件可以做到这一点。提前感谢Javascript 根据页面滚动更改div位置,javascript,mootools,Javascript,Mootools,我有下面的代码,一旦元素scrollTop大于一个数字,就会将div的位置更改为fixed。我试图修改这个脚本或者找到一个不同的解决方案,这样div将在一个范围内滚动,并在某个点停止滚动(这样div就不会离开页面或者与页脚元素重叠) 我不知道是否正确的方法是,如果scrollTop大于150,那么位置=固定,如果scrollTop大于600,那么位置返回到绝对位置,或者是否有更好的方法,比如从底部的距离 我使用MooTools,而不是jQuery。我知道有一些jQuery选项/插件可以做到这一点
window.onscroll = function()
{
if( window.XMLHttpRequest ) { // IE 6 doesnt implement position fixed nicely...
if (document.documentElement.scrollTop > 150) {
$('tabber').style.position = 'fixed';
$('tabber').style.top = '0';
} else {
$('tabber').style.position = 'absolute';
$('tabber').style.top = 'auto';
}
}
}
上面的脚本在很多方面都是错误的 不要使用
window.onscroll
而是window.addEvent(“滚动”,function(){})
缓存选择器。在元素不变的情况下,在每个滚动条上使用$(“tabber”)
3次代价高昂
只需执行var tabber=$(“tabber”)
并引用它即可
你不需要这么做
$("tabber").style.position = ...
$("tabber").style.top = ...
做:
有mootools插件可用于此,例如David Walsh的scrollSpy:
它允许您在到达各种滚动目的地或事件时设置脚本化事件,请参见示例
或者你可以自己写,例如,这花了我15分钟:
(观察)-当达到页脚的20像素时,它停止被修复。如果再次向上滚动,则返回到修复状态。上述脚本在许多级别上都是错误的 不要使用
window.onscroll
而是window.addEvent(“滚动”,function(){})
缓存选择器。在元素不变的情况下,在每个滚动条上使用$(“tabber”)
3次代价高昂
只需执行var tabber=$(“tabber”)
并引用它即可
你不需要这么做
$("tabber").style.position = ...
$("tabber").style.top = ...
做:
有mootools插件可用于此,例如David Walsh的scrollSpy:
它允许您在到达各种滚动目的地或事件时设置脚本化事件,请参见示例
或者你可以自己写,例如,这花了我15分钟:
(手表)-当达到页脚的20像素时,它将停止被修复。如果再次向上滚动,它将返回到修复状态。为什么不将div的位置设置为“修复”,并根据需要将属性设置为左上方?他这样做是因为ie6无法进行修复。耶,我还在寻找这样一种效果,即页面下方一半的div是静止的查看器滚动页面,直到该div到达窗口顶部,然后它在窗口顶部保持可见,而不是从顶部滚动。上面的脚本实现了这一点,问题是我需要该div在到达某个点后停止被修复。因此,我似乎无法实现的效果是"停止在高度上固定。为什么不将div的位置设置为固定,并根据需要将属性设置为左上方?他这样做是因为ie6无法进行固定。耶,我也在寻找这样一种效果,即当浏览者滚动页面时,位于页面下方一半的div保持静止,直到该div到达窗口顶部,然后它保持可见在窗口顶部执行le操作,而不是从窗口顶部滚动。上面的脚本实现了这一点,问题是我需要div在达到某个点后停止被修复。因此,我似乎无法实现的效果是“停止固定高度。谢谢Dimitar,我将查看您的演示。我已经使用scrollspy根据位置显示和隐藏了一些div,所以我也将尝试使用它。谢谢Dimitar,我将查看您的演示。我已经使用scrollspy根据位置显示和隐藏了一些div,所以我也将尝试使用它。