parallax.coffee 1.17 KB
#
# OK, this is not really a parallax... I just want to see my content move
# somewhat faster than the background... hey, ho, let's go
#
window.App ||= {}

content_top = content_left = width_delta = height_delta = 0

App.init = ->
	$('a[href*=\\#]').each ->
		if location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') and location.hostname == this.hostname and this.hash.replace(/#/,'')
			$targetId = $(this.hash)
			$targetAnchor = $('[name=' + this.hash.slice(1) + ']')
			$target = if $targetId.length
				$targetId
			else
				if $targetAnchor.length
					$targetAnchor
				else
  				false

		if $target
			targetOffset = $target.offset().top

			$(this).click ->
				$("#nav li a").removeClass("active")
				$(this).addClass('active')
				$('html, body').animate({scrollTop: targetOffset}, 1000)
				return false

App.scroll = ->
	v_scroll = $(document).scrollTop()
	section = Math.floor(v_scroll / $(window).innerHeight())
	bg_pos = (v_scroll-(section*$(window).innerHeight()))/2
	$($(".section")[section]).css(
		"background-position",
		"center -" + bg_pos + "px")

$(document).on "page:change", ->
	App.init()

$(window).on "scroll", ->
	App.scroll()

# vim: set ts=2 sw=2: