1

我想使用这里看到的这个动画图

但它存在于首屏之下,我希望它只有在它出现时才进行动画处理。

我尝试使用此处提供的代码,看起来它可以解决问题: 每当 DIV 第一次可见时加载(延迟加载)一个 Div

连同其他类似的帖子,但没有成功。

一些帮助将不胜感激。代码的准系统可以在这里看到

谢谢。尼尔

4

1 回答 1

0

我认为这个lazyLoad() 函数的问题在于它使用元素的offset().top 来确定元素是否在窗口的视图中。

但问题是,如果您的元素显示属性设置为 none,则 offset 方法将返回 0,这将在页面加载时触发事件,从而使您的动画在页面加载时开始。

由于您的动画可能使用 display 属性来控制动画的可见性,因此您可能从 offset 方法中获得 0 值。

试试这个,在调用 offset 方法之后(大约第 13 行)把它放在 lasyLoad() 函数中,看看页面加载时的偏移值是多少

console.log("offset top " + ot + " height: " + ob);

在偏移调用之后输入。

你可以看看这个小提琴,我在那里调试了这个问题 http://jsfiddle.net/jessekinsman/yDybE/5/

您可以尝试使用 css 过渡来制作动画并使用可见性属性而不是显示属性。由于我不知道您要实现哪种类型的动画,因此我不能真正推荐要尝试的动画。

希望这可以帮助

于 2013-02-27T01:18:47.677 回答