【问题标题】:jQuery position element based on window resize基于窗口调整大小的jQuery位置元素
【发布时间】:2011-09-24 15:13:51
【问题描述】:

如果您查看此页面:http://dev.driz.co.uk/tips/ 我正在做一些实验以了解有关 jQuery 的更多信息以及如何开发类似于我们在 Facebook 上看到的东西。

您会看到我有一个相对于红框定位的工具提示。但是,如果您调整窗口大小,它不会调整与它相关的提示。我该如何解决这个问题?

另外考虑到如果用户调整窗口高度时元素非常高,那么我希望提示向上移动,以便它出现在屏幕视口内,换句话说,始终距离页面底部约 20px 但保持箭头在同一个地方,所以它只是自我调整的盒子。

谁能帮我实现这两件事?非常感激。谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您需要计算窗口调整大小事件中的位置:

    $(window).resize(function() {
      // your positioning code here
    });
    

    $(document).ready(function() {
    
        calculation();
        $(window).resize(calculation);
    
        function calculation() {
            var location = $("#link").offset();
    
            var top = location.top;
    
            var left = location.left;
            left = left - $('#tip').width();
            left = left - 15;
    
            $("#tip").css({
                'position': 'absolute',
                'top': top + 'px',
                'left': left + 'px'
            });
        }
    });
    

    【讨论】:

    • 好的,我如何有效地使用我的代码,就像您现在检查我的代码仅在用户调整窗口大小时运行一样。我宁愿不将代码包装在一个函数中,然后在准备好和调整大小时调用它,因为我正在重复自己......干杯
    • @Cameron:然后在函数中进行计算,并在调整大小和准备就绪时调用它。我更新了我的答案
    猜你喜欢
    • 2011-09-15
    • 2013-01-24
    • 2012-07-07
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多