DJ *_*ira 2 javascript jquery css-animations
我正在创建一些视差滚动代码(我知道,我知道),而且我运行得很顺利,但是我遇到了一个高级用例.这是一个演示.
它现在是Chrome,Safari和FF中的60fps,这部分是因为我只是在视野中更新元素的位置.我使用这段代码检查了这个(在所说的demo的main.js中找到):
a = obj.offset + obj.height - winScroll,
b = winHeight - (obj.offset - winScroll);
if ( (a <= winHeight && a >= 0) || (b <= winHeight && b >= 0) ) {
Run Code Online (Sandbox Code Playgroud)
基本上,我正在检查对象是否在这样的视图中:

如果a 或 b大于0但小于窗口的高度,那么它是可见的.
这适用于比窗口小的东西,但是那些更大的东西呢?基本上,我要做的是取一系列数字(窗口顶部和窗口顶部之间的所有像素+它的高度)并将其与另一个数字范围(对象的偏移量和偏移量)进行比较对象+它的高度)并查看是否有相同的数字.
我如何在已经拥挤的16ms内完成这项工作?
证明(A)的一种方法是反驳(¬A).
首先,假设该对象和窗口各自与4个属性(矩形left,right,top,bottom)表示的坐标系中的值.
并且假设原点O(0,0)是窗口的左上角,正x轴向右延伸,正y轴相对于原点向下延伸.
当且仅当至少下列一个语句为真时,该对象才是不可见的:
obj.left >= window.rightobj.right <= window.leftobj.top >= window.bottomobj.bottom <= window.top在or声明中链接这些,并否定该布尔表达式的结果.
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |