JavaScript 如何做到 如果 div 内滚动到底了 不滚动外部结构

yakjuly · 2013年04月16日 · 最后由 yakjuly 回复于 2013年04月16日 · 6777 次阅读

一个页面比较长,其中有个浮动 div 内部带滚动条,如何在 这个 div 滚到到底部的时候页面保持不变(不会把整个页面的内容往下滚动)

效果如下: http://jira.codehaus.org/issues/?jql=

打开该网页,点击 status 往下滚动,到底部时 不再滚动,页面静止。

求方法 或轻量级的 插件

@gsshcl google 搜过,表达起来比较困难。

这个答案有问题 不好用。 这个才是正确的: http://stackoverflow.com/questions/7571370/jquery-disable-scroll-when-mouse-over-an-absolute-div

Changelog:

FF support
scrollTo null check to revert to default behavior in case something unforeseen happens
support for jQuery 1.7.
$('#abs').bind('mousewheel DOMMouseScroll', function(e) {
    var scrollTo = null;

    if (e.type == 'mousewheel') {
        scrollTo = (e.originalEvent.wheelDelta * -1);
    }
    else if (e.type == 'DOMMouseScroll') {
        scrollTo = 40 * e.originalEvent.detail;
    }

    if (scrollTo) {
        e.preventDefault();
        $(this).scrollTop(scrollTo + $(this).scrollTop());
    }
});​

这个问题那需要动用 js 呀,直接 css 就能搞定的呀。原理就是规定元素高度,然后使超出高度时使用 scroll 行为

#topic_show{
height: 130px;
overflow: scroll;
}

你可以用这个试试 ruby-china 当前页面

哦,理解错误。。。

表达的不好,我的问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号