Jquery 如何动态设置滚动高度?
我有一个div,它的高度为1200px,宽度为浏览器窗口。就在那个div的下方,我有另一个高度为1000px的div。现在,当向下滚动时,您将能够滚动到第二个div的末尾。我想要的是设置滚动高度,例如,我想说您应该只能滚动1200px。这样一来,访客就看不到我的第二个div了。有没有办法用JQuery实现这一点 我上传了一张强调我问题的图片:Jquery 如何动态设置滚动高度?,jquery,css,scroll,Jquery,Css,Scroll,我有一个div,它的高度为1200px,宽度为浏览器窗口。就在那个div的下方,我有另一个高度为1000px的div。现在,当向下滚动时,您将能够滚动到第二个div的末尾。我想要的是设置滚动高度,例如,我想说您应该只能滚动1200px。这样一来,访客就看不到我的第二个div了。有没有办法用JQuery实现这一点 我上传了一张强调我问题的图片: 您可以处理窗口。onscroll,防止事件在用户滚动过远时传播,并将其发送回他们要查看的位置: 更新 这是一个更加跨浏览器友好的版本,在Chrome 2
您可以处理
窗口。onscroll
,防止事件在用户滚动过远时传播,并将其发送回他们要查看的位置:
更新
这是一个更加跨浏览器友好的版本,在Chrome 25、Firefox 19、IE10/IE9、Safari 5、Opera 12中进行了测试。在IE、Safari和Opera中,它会有一些反弹。尤其是Opera,因为它的平滑滚动,使我更加欣赏Firefox,因为它有平滑的滚动,非常完美
window.onscroll = function (e) {
var maxViewableHeight = 1400,
scrollTop = getScrollTop();
if (scrollTop + window.innerHeight > maxViewableHeight) {
e.preventDefault();
window.scrollTo(0, maxViewableHeight - window.innerHeight);
return false;
}
}
function getScrollTop() {
if (typeof window.pageYOffset !== 'undefined') {
return window.pageYOffset;
}
var body = document.body,
docElement = document.documentElement;
docElement = (docElement.clientHeight) ? docElement : body;
return docElement.scrollTop;
}
听起来是个坏主意。你为什么不把div藏起来呢?哦,对于你的问题,是的,这是可能的,但像往常一样:你做了什么?因为我想把一些东西藏起来,上面有一个div。由于页面的宽度取决于浏览器窗口的宽度(页面将缩小),当您将宽度更改为较小的尺寸时,您将能够看到低于1200像素的内容。@romainberger没有尝试任何内容,因为我真的不知道如何开始。我没有发现关于这个特殊问题或设置滚动高度的任何信息。如果用户不应该看到内容,为什么不简单地将
style=“display:none”
设置为不应该看到的div?知道为什么这在IE和Firefox中都不起作用吗?太好了,非常感谢您的努力!更改滚动条的大小可能是不可能的,是吗?这样用户就看不到页面实际上还更长。不,你不能更改滚动条的大小。然而,这将基本上达到与将“隐藏的东西”放在
中并用JavaScript隐藏该
相同的效果。
window.onscroll = function (e) {
var maxViewableHeight = 1400,
scrollTop = getScrollTop();
if (scrollTop + window.innerHeight > maxViewableHeight) {
e.preventDefault();
window.scrollTo(0, maxViewableHeight - window.innerHeight);
return false;
}
}
function getScrollTop() {
if (typeof window.pageYOffset !== 'undefined') {
return window.pageYOffset;
}
var body = document.body,
docElement = document.documentElement;
docElement = (docElement.clientHeight) ? docElement : body;
return docElement.scrollTop;
}