计算div何时触底的最佳方法



我有一个动态生成div框的应用程序。这些方框相互重叠,并向下和向右移动了15px。

然而,当一个框的底部碰到页面的底部时,我希望下一个框出现在页面的顶部。当框的右侧碰到页面的右侧时也是如此。

下面是我的代码,但它不像我想要的那样工作。盒子在右侧"出界",然后在左侧出现,至于底部,它也不是真正正确的。我想应该有更好的办法,我只是不知道是什么办法。

var win = $('<div/>', {
    'class': 'window',
    'width': this.width,
    'height': this.height
}).appendTo('#container');
var containerHeight = $('#container').height();
var maxBottom = (desktopHeight / 2);
var containerWidth = $('#container').width();
var maxRight = desktopWidth;
var prev = win.prev('.window');
if (prev.length > 0) {
   win.offset({ 
    left: prev.offset().left + 15, 
    top: prev.offset().top + 15 });
    if (prev.offset().top >= maxBottom){
        win.offset({
            top: 10
        });
    }
    if (prev.offset().left >= maxRight){
        win.offset({
            left: 0
        })
    }
}

您可以检查元素的.offset().top属性加上元素的.height()是否等于或大于.height(),如果文档:

var myBox   = $('#my-box'),
    bHeight = myBox.height(),
    wHeight = $(window).height(),
    bWidth  = myBox.width(),
    wWidth  = $(window).width();
if (myBox.offset().top + bHeight >= wHeight) {
    myBox.css({
        top : 0
    });
}
if (myBox.offset().left + bWidth >= wWidth) {
    myBox.css({
        left : 0
    });
}

相关内容

最新更新