-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscrollpoint.jquery.min.js
More file actions
1 lines (1 loc) · 1.86 KB
/
scrollpoint.jquery.min.js
File metadata and controls
1 lines (1 loc) · 1.86 KB
1
!function($){function animateit(element,opts){opts.beforeTrigger(),$(element).removeClass("sp-force-trigger"),element.className=element.className.replace("sp-pre-triggered",""),element.className+=" sp-triggered",opts.triggeredClass&&(element.className+=" "+opts.triggeredClass),$(window).trigger("scroll"),$(element).on("transitionend webkitTransitionEnd",function(e){$(this).addClass("sp-trigger-completed"),$(window).trigger("scroll")}),opts.onTrigger(element)}$.scrollpoint=function(element,options){var opts=$.extend({offset:0,triggeredClass:"",animation:"",delay:0,loadAfter:!1,beforeTrigger:function(){},onTrigger:function(){}},options),element=element[0];""!=element.className&&(element.className+=" "),element.className+="scrollpoint",opts.animation&&(element.className+=" "+opts.animation),$(window).on("scroll resize",function(){var scrollPos=window.pageYOffset;itemTop=element.getBoundingClientRect().top,itemBottom=element.getBoundingClientRect().bottom,windowHeight=window.innerHeight,bottomOfScreen=scrollPos+windowHeight,topOfScreen=scrollPos,scrollUpVisible=itemBottom>=.1*windowHeight+opts.offset,scrollDownVisible=itemTop<=windowHeight-.1*windowHeight-opts.offset,(scrollDownVisible&&scrollUpVisible&&!$(element).hasClass("sp-triggered")||$(element).hasClass("sp-force-trigger"))&&(opts.loadAfter?(opts.loadAfter.hasClass("sp-triggered")||opts.loadAfter.addClass("sp-force-trigger")||opts.loadAfter.hasClass("sp-trigger-completed")||opts.loadAfter.addClass("sp-force-trigger"),opts.loadAfter.hasClass("sp-trigger-completed")&&animateit(element,opts)):animateit(element,opts))})},$.fn.scrollpoint=function(options){return this.each(function(){if(void 0==$(this).data("scrollpoint")){var plugin=new $.scrollpoint($(this),options);$(this).data("scrollpoint",plugin)}})},$(document).ready(function(){$(window).trigger("scroll")}),$(window).load(function(){$(window).trigger("scroll")})}(jQuery);