我有一个动态生成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
});
}