0

找到了如何在 SO 上的帖子中隐藏地址栏后,我需要执行此脚本以便在地址栏滚动出视图后获取视口高度。

但是 H 和 W 值在滚动发生之前返回,尽管我在 1 秒后调用了 getViewPortSize() 函数。一旦对话框点击确定,地址栏就会滚动!

任何人都可以帮助我按预期工作吗?

$(document).ready(function () {
        window.addEventListener("load", function () { if (!window.pageYOffset) { hideAddressBar(); } });
        window.addEventListener("orientationchange", hideAddressBar);

        setTimeout(getViewPortSize(), 1000);

        function getViewPortSize() {
            var viewportWidth = $(window).width();
            var viewportHeight = $(window).height();

            alert('viewportHeight: ' + viewportHeight);
        }
        function hideAddressBar() {
            if (!window.location.hash) {
                if (document.height < window.outerHeight) {
                    document.body.style.height = (window.outerHeight + 50) + 'px';
                }

                setTimeout(function () { window.scrollTo(0, 1); }, 0);
            }
        }
    });
4

1 回答 1

0

找到了这个答案:

替换 setTimeout(getViewPortSize(), 1000);

和:

$(window).scroll(function () {
    getViewPortSize()
});

这样在滚动发生之前不会启动该功能。

于 2013-02-12T15:00:45.497 回答