Files
openfoodnetwork/app/assets/javascripts/darkswarm/directives/smooth_scroll_to.js.coffee
2016-08-03 16:07:15 +10:00

16 lines
674 B
CoffeeScript

Darkswarm.directive "ofnSmoothScrollTo", ($location, $document)->
# Onclick sets $location.hash to attrs.ofnScrollTo
# Then triggers $document.scrollTo
restrict: 'A'
link: (scope, element, attrs)->
element.bind 'click', (ev)->
ev.stopPropagation()
$location.hash attrs.ofnScrollTo
target = $("a[name='#{attrs.ofnSmoothScrollTo}']")
# Scrolling is confused by our position:fixed top bar and page alert bar
# - add an offset to scroll to the correct location, plus 5px buffer
offset = $("nav.top-bar").height()
offset += $(".page-alert.move-down").height()
offset += 5
$document.scrollTo target, offset, 1000