Jquery 滚动窗格

发布于 2024-12-03 03:34:11 字数 70 浏览 1 评论 0原文

正如任何人都遇到过的问题一样,仍然能够滚动到您正在滚动的 div 的边界之外。

由于法律原因,我无法发布代码。

As anybody ever have add issue with still being able to scroll outside the boundaries of the div you are scrolling.

For legal reasons am unable to post the code sadly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凡尘雨 2024-12-10 03:34:11

如果我假设正确,您正在使用 jScrollPane 并且滚动容器在窗口调整大小时会扩展到窗口尺寸之外。代码中存在一个错误,即计算内容和容器的宽度和高度。基本上,您需要在调整窗口大小时重新分配宽度和高度。这是一个工作示例:

var oldWindowHeight = $(window).height();
var oldWindowWidth = $(window).width();
$(function () {
    $('.tdMiddleRightContent').each(function () {
        $(this).jScrollPane({
            showArrows: true,
            hideFocus: true
        });
        var api = $(this).data('jsp');
        var throttleTimeout;
        $(window).bind('resize', function () {
            var newWindowHeight = $(window).height();
            if ((newWindowHeight - oldWindowHeight) < 0) {
                $(".jspContainer").height($(".jspContainer").height() + (newWindowHeight - oldWindowHeight));
            }
            var newWindowWidth = $(window).width();
            if ((newWindowWidth - oldWindowWidth) < 0) {
                $(".jspContainer").width($(".jspContainer").width() + (newWindowWidth - oldWindowWidth));
            }
            if ($.browser.msie) {
                if (!throttleTimeout) {
                    throttleTimeout = setTimeout(function () {
                        api.reinitialise();
                        throttleTimeout = null;
                    }, 50);
                }
            } else {
                api.reinitialise();
            }
            oldWindowHeight = $(window).height();
            oldWindowWidth = $(window).width();
        });
    });
});

If i assume correctly, you are using jScrollPane and the scroll container expands beyond the window dimensions on window resize. There is a bug in the code where the width and height is calculated for the content and container. Basically, you need to reassign the width and height on window resize. Here is a working example:

var oldWindowHeight = $(window).height();
var oldWindowWidth = $(window).width();
$(function () {
    $('.tdMiddleRightContent').each(function () {
        $(this).jScrollPane({
            showArrows: true,
            hideFocus: true
        });
        var api = $(this).data('jsp');
        var throttleTimeout;
        $(window).bind('resize', function () {
            var newWindowHeight = $(window).height();
            if ((newWindowHeight - oldWindowHeight) < 0) {
                $(".jspContainer").height($(".jspContainer").height() + (newWindowHeight - oldWindowHeight));
            }
            var newWindowWidth = $(window).width();
            if ((newWindowWidth - oldWindowWidth) < 0) {
                $(".jspContainer").width($(".jspContainer").width() + (newWindowWidth - oldWindowWidth));
            }
            if ($.browser.msie) {
                if (!throttleTimeout) {
                    throttleTimeout = setTimeout(function () {
                        api.reinitialise();
                        throttleTimeout = null;
                    }, 50);
                }
            } else {
                api.reinitialise();
            }
            oldWindowHeight = $(window).height();
            oldWindowWidth = $(window).width();
        });
    });
});
梦魇绽荼蘼 2024-12-10 03:34:11

事实上,我使用的是 jquery 1.2.6,我必须升级到 jquery 1.3.2 才能解决我的问题。

感谢您的评论 Ace Trajkov

It actually turned out to be the fact i was using jquery 1.2.6, I had to upgrade to jquery 1.3.2 to solved my issue.

Thank you for your comments Ace Trajkov

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文