capitalize = require 'underscore.string/capitalize'
methods =The Base class contains common methods that are mixed in to the contoller and view
It has some dependencies:
capitalize = require 'underscore.string/capitalize'
methods =Attempts to call the method ‘onChangeFromPreviousSizeToNewSize’ to handle responsive events, i.e. onChangeFromLargeToSmall
onResolutionChanged: (resolution) ->
@currentResolution = resolution.newSize
methodName = "onChangeFrom#{capitalize(resolution.prevSize)}To#{capitalize(resolution.newSize)}"
try
this[methodName]()
returnChecks to see if the given element is substantially in the viewport. Returns the height of visible portion of the element.
inViewport: (el) ->
return 0 unless $(el).length
elBounds = $(el).get(0).getBoundingClientRect()the el is not visible
return 0 if elBounds.bottom <= 0 or elBounds.top >= window.innerHeightthe el is entirely visible
return $(el).height() if elBounds.top >= 0 and elBounds.bottom <= window.innerHeightif the el’s top is visible but not the bottom
if elBounds.top >= 0 and elBounds.bottom >= window.innerHeight
return $(el).height() - (elBounds.bottom - window.innerHeight)if the el’s bottom is visible but not the top
if elBounds.bottom < window.innerHeight and elBounds.top < 0
return $(el).height() - (elBounds.top * -1)the el is filling the entire window
return $(el).height() if elBounds.top <= 0 and elBounds.bottom >= window.innerHeight
makeRouteFunction: ->
return ->
[section, name, args...] = arguments
if section.instance?
section.instance.receiveNavigation.apply(section.instance, args)
@_logMessage "Route triggered: #{name}"
@notify "#{name}:navigate"
module.exports = methods