我想使用这里看到的这个动画图
但它存在于首屏之下,我希望它只有在它出现时才进行动画处理。
我尝试使用此处提供的代码,看起来它可以解决问题: 每当 DIV 第一次可见时加载(延迟加载)一个 Div
连同其他类似的帖子,但没有成功。
一些帮助将不胜感激。代码的准系统可以在这里看到
谢谢。尼尔
我想使用这里看到的这个动画图
但它存在于首屏之下,我希望它只有在它出现时才进行动画处理。
我尝试使用此处提供的代码,看起来它可以解决问题: 每当 DIV 第一次可见时加载(延迟加载)一个 Div
连同其他类似的帖子,但没有成功。
一些帮助将不胜感激。代码的准系统可以在这里看到
谢谢。尼尔
我认为这个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 过渡来制作动画并使用可见性属性而不是显示属性。由于我不知道您要实现哪种类型的动画,因此我不能真正推荐要尝试的动画。
希望这可以帮助