0% found this document useful (0 votes)
13 views4 pages

jQuery Waypoint Implementation Guide

The document defines a Waypoint class that is used to create DOM elements that trigger callbacks when they enter or exit the viewport. It handles grouping waypoints together and queuing triggered callbacks. Methods are defined for adding, removing, enabling, disabling waypoints as well as refreshing context and triggering callbacks.

Uploaded by

witch Lover
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

jQuery Waypoint Implementation Guide

The document defines a Waypoint class that is used to create DOM elements that trigger callbacks when they enter or exit the viewport. It handles grouping waypoints together and queuing triggered callbacks. Methods are defined for adding, removing, enabling, disabling waypoints as well as refreshing context and triggering callbacks.

Uploaded by

witch Lover
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

!function(){"use strict";function Waypoint(options){if(!

options)throw new Error("No


options passed to Waypoint constructor");if(![Link])throw new Error("No
element option passed to Waypoint constructor");if(![Link])throw new
Error("No handler option passed to Waypoint
constructor");[Link]="waypoint-"+keyCounter,[Link]=[Link](
{},[Link],options),[Link]=[Link],[Link]=new
[Link]([Link]),[Link]=[Link],[Link]=[Link]
.horizontal?"horizontal":"vertical",[Link]=[Link],[Link]
oint=null,[Link]=[Link]({name:[Link],axis:this
.axis}),[Link]=[Link]([Link]),W
[Link][[Link]]&&([Link]=[Link]
ases[[Link]]),[Link](this),[Link](this),allWaypoints
[[Link]]=this,keyCounter+=1}var
keyCounter=0,allWaypoints={};[Link]=function(direction)
{[Link](this,direction)},[Link]=function(args)
{[Link]&&[Link]&&[Link](this,args)},[Link]
stroy=function(){[Link](this),[Link](this),delete
allWaypoints[[Link]]},[Link]=function(){return [Link]=!
1,this},[Link]=function(){return
[Link](),[Link]=!0,this},[Link]=function()
{return [Link](this)},[Link]=function(){return
[Link](this)},[Link]=function(method){var
allWaypointsArray=[];for(var waypointKey in
allWaypoints)[Link](allWaypoints[waypointKey]);for(var
i=0,end=[Link];i<end;i++)allWaypointsArray[i][method]
()},[Link]=function()
{[Link]("destroy")},[Link]=function()
{[Link]("disable")},[Link]=function()
{[Link]();for(var waypointKey in
allWaypoints)allWaypoints[waypointKey].enabled=!0;return
this},[Link]=function()
{[Link]()},[Link]=function(){return
[Link]||
[Link]},[Link]=function(){return
[Link]},[Link]=[],[Link]={conte
xt:window,continuous:!0,enabled:!0,group:"default",horizontal:!
1,offset:0},[Link]={"bottom-in-view":function(){return
[Link]()-[Link]()},"right-in-view":function()
{return [Link]()-
[Link]()}},[Link]=Waypoint}(),function(){"use
strict";function requestAnimationFrameShim(callback)
{[Link](callback,1e3/60)}function Context(element)
{[Link]=element,[Link]=[Link],[Link]=new
[Link](element),[Link]="waypoint-context-"+keyCounter,[Link]=!
1,[Link]=!
1,[Link]={x:[Link](),y:[Link]()},[Link]
oints={vertical:{},horizontal:
{}},[Link]=[Link],contexts[[Link]]=this,k
eyCounter+=1,[Link]||([Link]=!
0,[Link]=new
Context(window)),[Link](),[Link]
ler()}var
keyCounter=0,contexts={},Waypoint=[Link],oldWindowLoad=[Link];Conte
[Link]=function(waypoint){var
axis=[Link]?"horizontal":"vertical";[Link][axis]
[[Link]]=waypoint,[Link]()},[Link]=function(){var
horizontalEmpty=[Link]([Link]),verticalEmpty
=[Link]([Link]),isWindow=[Link]==[Link]
[Link];horizontalEmpty&&verticalEmpty&&!
isWindow&&([Link](".waypoints"),delete
contexts[[Link]])},[Link]=function()
{function resizeHandler(){[Link](),[Link]=!1}var
self=this;[Link]("[Link]",function(){[Link]||
([Link]=!
0,[Link](resizeHandler))})},[Link]
edScrollHandler=function(){function scrollHandler()
{[Link](),[Link]=!1}var
self=this;[Link]("[Link]",function(){[Link]&&!
[Link]||([Link]=!
0,[Link](scrollHandler))})},[Link]=
function(){[Link]()},[Link]=function()
{var triggeredGroups={},axes={horizontal:
{newScroll:[Link](),oldScroll:[Link].x,forward:"right",bac
kward:"left"},vertical:
{newScroll:[Link](),oldScroll:[Link].y,forward:"down",backw
ard:"up"}};for(var axisKey in axes){var
axis=axes[axisKey],isForward=[Link]>[Link],direction=isForward?
[Link]:[Link];for(var waypointKey in [Link][axisKey]){var
waypoint=[Link][axisKey][waypointKey];if(null!==[Link]){var
wasBeforeTriggerPoint=[Link]<[Link],nowAfterTriggerPoint=axi
[Link]>=[Link],crossedForward=wasBeforeTriggerPoint&&nowAfterTr
iggerPoint,crossedBackward=!wasBeforeTriggerPoint&&!nowAfterTriggerPoint;
(crossedForward||
crossedBackward)&&([Link](direction),triggeredGroups[[Link].
id]=[Link])}}}for(var groupKey in
triggeredGroups)triggeredGroups[groupKey].flushTriggers();[Link]={x:[Link]
[Link],y:[Link]}},[Link]=functi
on(){return [Link]==[Link]?
[Link]():[Link]()},[Link]=func
tion(waypoint){delete [Link][[Link]]
[[Link]],[Link]()},[Link]=function(){return
[Link]==[Link]?
[Link]():[Link]()},[Link]=funct
ion(){var allWaypoints=[];for(var axis in [Link])for(var waypointKey in
[Link][axis])[Link]([Link][axis][waypointKey]);for(var
i=0,end=[Link];i<end;i+
+)allWaypoints[i].destroy()},[Link]=function(){var
axes,isWindow=[Link]==[Link],contextOffset=isWindow?void
0:[Link](),triggeredGroups={};[Link](),axes={horizontal:
{contextOffset:isWindow?0:[Link],contextScroll:isWindow?
0:[Link].x,contextDimension:[Link](),oldScroll:[Link].x,fo
rward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:isWindow?
0:[Link],contextScroll:isWindow?
0:[Link].y,contextDimension:[Link](),oldScroll:[Link].y,f
orward:"down",backward:"up",offsetProp:"top"}};for(var axisKey in axes){var
axis=axes[axisKey];for(var waypointKey in [Link][axisKey]){var
contextModifier,wasBeforeScroll,nowAfterScroll,triggeredBackward,triggeredForward,w
aypoint=[Link][axisKey]
[waypointKey],adjustment=[Link],oldTriggerPoint=[Link]
int,elementOffset=0,freshWaypoint=null==oldTriggerPoint;[Link]!
==[Link]&&(elementOffset=[Link]()
[[Link]]),"function"==typeof adjustment?
adjustment=[Link](waypoint):"string"==typeof
adjustment&&(adjustment=parseFloat(adjustment),[Link]("%")
>-1&&(adjustment=[Link]([Link]*adjustment/
100))),contextModifier=[Link]-
[Link],[Link]=[Link](elementOffset+contextModifier-
adjustment),wasBeforeScroll=oldTriggerPoint<[Link],nowAfterScroll=waypoint.
triggerPoint>=[Link],triggeredBackward=wasBeforeScroll&&nowAfterScroll,trig
geredForward=!wasBeforeScroll&&!nowAfterScroll,!freshWaypoint&&triggeredBackward?
([Link]([Link]),triggeredGroups[[Link]]=waypoint.g
roup):!freshWaypoint&&triggeredForward?
([Link]([Link]),triggeredGroups[[Link]]=[Link]
oup):freshWaypoint&&[Link]>=[Link]&&([Link](a
[Link]),triggeredGroups[[Link]]=[Link])}}return
[Link](function(){for(var groupKey in
triggeredGroups)triggeredGroups[groupKey].flushTriggers()}),this},[Link]
ateByElement=function(element){return [Link](element)||new
Context(element)},[Link]=function(){for(var contextId in
contexts)contexts[contextId].refresh()},[Link]=function(element)
{return contexts[[Link]]},[Link]=function()
{oldWindowLoad&&oldWindowLoad(),[Link]()},[Link]
e=function(callback){var requestFn=[Link]||
[Link]||[Link]||
requestAnimationFrameShim;[Link](window,callback)},[Link]=Context
}(),function(){"use strict";function byTriggerPoint(a,b){return [Link]-
[Link]}function byReverseTriggerPoint(a,b){return [Link]-
[Link]}function Group(options)
{[Link]=[Link],[Link]=[Link],[Link]=[Link]+"-"+[Link],this
.waypoints=[],[Link](),groups[[Link]][[Link]]=this}var
groups={vertical:{},horizontal:
{}},Waypoint=[Link];[Link]=function(waypoint)
{[Link](waypoint)},[Link]=function()
{[Link]={up:[],down:[],left:[],right:
[]}},[Link]=function(){for(var direction in
[Link]){var
waypoints=[Link][direction],reverse="up"===direction||"left"===directio
n;[Link](reverse?byReverseTriggerPoint:byTriggerPoint);for(var
i=0,end=[Link];i<end;i+=1){var waypoint=waypoints[i];
([Link]||i===[Link]-1)&&[Link]([directi
on])}}[Link]()},[Link]=function(waypoint)
{[Link](byTriggerPoint);var
index=[Link](waypoint,[Link]),isLast=index===[Link]
[Link]-1;return isLast?
null:[Link][index+1]},[Link]=function(waypoint)
{[Link](byTriggerPoint);var
index=[Link](waypoint,[Link]);return index?
[Link][index-
1]:null},[Link]=function(waypoint,direction)
{[Link][direction].push(waypoint)},[Link]=function(wayp
oint){var index=[Link](waypoint,[Link]);index>-
1&&[Link](index,1)},[Link]=function(){return
[Link][0]},[Link]=function(){return
[Link][[Link]-1]},[Link]=function(options)
{return groups[[Link]][[Link]]||new
Group(options)},[Link]=Group}(),function(){"use strict";function
JQueryAdapter(element){this.$element=$(element)}var
$=[Link],Waypoint=[Link];
$.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","
scrollLeft","scrollTop"],function(i,method)
{[Link][method]=function(){var
args=[Link](arguments);return this.$element[method].apply(this.
$element,args)}}),$.each(["extend","inArray","isEmptyObject"],function(i,method)
{JQueryAdapter[method]=$
[method]}),[Link]({name:"jquery",Adapter:JQueryAdapter}),Waypoint.A
dapter=JQueryAdapter}(),function(){"use strict";function createExtension(framework)
{return function(){var waypoints=[],overrides=arguments[0];return
[Link](arguments[0])&&(overrides=[Link]({},arguments[1]),ov
[Link]=arguments[0]),[Link](function(){var
options=[Link]({},overrides,{element:this});"string"==typeof
[Link]&&([Link]=framework(this).closest([Link])
[0]),[Link](new Waypoint(options))}),waypoints}}var
Waypoint=[Link];[Link]&&([Link]=createE
xtension([Link])),[Link]&&([Link]=createExt
ension([Link]))}();

You might also like