I think the problem with this lazyLoad() function is that it uses the offset().top of the element to determine if the element is in the view of the window.
The problem though, is if your element display property is set to none, the offset method will return 0, which will fire the event when the page loads, thus making your animation start on page load.
Since your animation probably uses the display property to control the visiblitiy of the animation, you are probably getting a 0 value from the offset method.
Give this a try, put this in the lasyLoad() function just after it calls the offset method (about line 13) and see what the offset value is when the page loads
console.log("offset top " + ot + " height: " + ob);
Enter that just after the offset call.
You can check out this fiddle, where I debugged this issue
http://jsfiddle.net/jessekinsman/yDybE/5/
You might try using css transition to do your animation and use the visibility property instead of the display property. Since I don't know what type of animation you are trying to achieve, I can't really recommend exactly what animation to try.
Hope this helps