Add directive for smooth scrolling to anchor

This commit is contained in:
Rohan Mitchell
2016-07-29 10:11:37 +10:00
parent 140589fc2d
commit d93d1653db

View File

@@ -0,0 +1,15 @@
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