Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何动态设置滚动高度?_Jquery_Css_Scroll - Fatal编程技术网

Jquery 如何动态设置滚动高度?

Jquery 如何动态设置滚动高度?,jquery,css,scroll,Jquery,Css,Scroll,我有一个div,它的高度为1200px,宽度为浏览器窗口。就在那个div的下方,我有另一个高度为1000px的div。现在,当向下滚动时,您将能够滚动到第二个div的末尾。我想要的是设置滚动高度,例如,我想说您应该只能滚动1200px。这样一来,访客就看不到我的第二个div了。有没有办法用JQuery实现这一点 我上传了一张强调我问题的图片: 您可以处理窗口。onscroll,防止事件在用户滚动过远时传播,并将其发送回他们要查看的位置: 更新 这是一个更加跨浏览器友好的版本,在Chrome 2

我有一个div,它的高度为1200px,宽度为浏览器窗口。就在那个div的下方,我有另一个高度为1000px的div。现在,当向下滚动时,您将能够滚动到第二个div的末尾。我想要的是设置滚动高度,例如,我想说您应该只能滚动1200px。这样一来,访客就看不到我的第二个div了。有没有办法用JQuery实现这一点

我上传了一张强调我问题的图片:


您可以处理
窗口。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;
}