[英]Check if position of element is equal to top: 50%; and left: 50%;
我有这个 function (它确定grid-container
是否在grid-container-wrapper
内部,如果不是,它会将grid-container
移动到页面中间, top: 50%;
left: 50%;
$(window).resize(function() {
if(document.getElementsByClassName('grid-container')[0].getBoundingClientRect().right > document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().right || document.getElementsByClassName('grid-container')[0].getBoundingClientRect().bottom > document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().bottom || $('.grid-container').position().left < $('.grid-container-wrapper').position().left || $('.grid-container').position().top < $('.grid-container-wrapper').position().top) {
$('.grid-container').animate({opacity:0}, 200, function() {
$('.grid-container').css('top', '50%');
$('.grid-container').css('left', '50%');
$('.grid-container').css('transform', 'translate(-50%, -50%)');
} );
$('.grid-container').animate({opacity:1}, 400);
}
});
但是,如果grid-container
已经定位到top: 50%;
left: 50%;
并且没有被移动(所以 position 仍然等于left: 50%;
and top: 50%;
),我不希望 function 被执行,即使grid-container
在grid-container-wrapper
之外.
有没有办法做到这一点?
如果您已经定位到顶部:50%; 左:50% 你可以添加一个 class 像“stopResisize”到网格容器或任何其他字段,当调整 function 开始时,看看这个 ZA2F2ED4F8EBC2CBB14C21A29DZ40 是否存在。 如果是这样,则不做任何事情就返回。
$(window).resize(function() {
if($('.grid-container').classList.contains("stopResisize")) return;
if ( ... ) {
...
$('.grid-container').classList.add('stopResisize');
}
}
$(window).resize(function() {
if(document.getElementsByClassName('grid-container')[0].getBoundingClientRect().right > document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().right || document.getElementsByClassName('grid-container')[0].getBoundingClientRect().bottom > document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().bottom || $('.grid-container').position().left < $('.grid-container-wrapper').position().left || $('.grid-container').position().top < $('.grid-container-wrapper').position().top) {
if(window.innerWidth - document.getElementsByClassName('grid-container')[0].getBoundingClientRect().right + 20 < $('.grid-container').position().left || window.innerWidth - document.getElementsByClassName('grid-container')[0].getBoundingClientRect().right - 20 > $('.grid-container').position().left || document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().bottom - document.getElementsByClassName('grid-container')[0].getBoundingClientRect().bottom + 20 < $('.grid-container').position().top || document.getElementsByClassName('grid-container-wrapper')[0].getBoundingClientRect().bottom - document.getElementsByClassName('grid-container')[0].getBoundingClientRect().bottom - 20 > $('.grid-container').position().top) {
$('.grid-container').animate({opacity:0}, 200, function() {
$('.grid-container').css('top', '50%');
$('.grid-container').css('left', '50%');
$('.grid-container').css('transform', 'translate(-50%, -50%)');
} );
$('.grid-container').animate({opacity:1}, 400);
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.