我如何知道特定物品是否已离开容器?

时间:2017-05-03 09:35:51

标签: javascript css transform

我写了一个小example

$('#block_container').addClass('animate');
var el = $('.block__el');
var height = el.height();
var allHeight = height * el.length;
$(".animate").css('transform', 'translateY(-'+ allHeight +'px)')

另外,我无法理解我推断出例如项目[10]留下了容器可见区域的信息。

我尝试通过offsettop,但这不是正确的方法

2 个答案:

答案 0 :(得分:1)

这个问题(在CSS中使用translateAxis时获取元素位置)在这篇文章中或多或少得到了解答:

How do I get the position of an element after css3 translation in JavaScript?

但是,如果你需要密切跟踪元素,我强烈建议使用Javascript在页面周围操作它们而不是CSS,它在浏览器中更快,更容易和更均匀。

使用CSS更改DOM的状态并尝试用javascript捕获它是一种反模式,除非编写等效的javascipt会非常困难。

答案 1 :(得分:-1)

在计算中,你必须计算边界。每个项目的边框宽度为1px,因此每个项目的高度属性比高度属性多2px。

如果您提供所有元素box-sizing: border-box,那么将使用边框计算高度,您的示例将起作用:

div {
    box-sizing: border-box;
}