You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
metu.life/app/assets/javascripts/mastodon-logo.coffee

49 lines
962 B

defaultClass = 'mastodon-shape'
pieces = [
'path#mastodon-tusk-front, path#mastodon-tusk-back',
'path#mastodon-nose',
'path#mastodon-cheek',
'path#mastodon-forehead',
'path#mastodon-backhead',
'path#mastodon-ear',
]
pieceIndex = 0
firstPiece = pieces[0]
currentTimer = null
delay = 100
runs = 0
stop_at_run = 1
clearHighlights = ->
$(".#{defaultClass}.highlight").attr('class', defaultClass)
start = ->
clearHighlights()
pieceIndex = 0
runs = 0
pieces.reverse() unless pieces[0] == firstPiece
clearInterval(currentTimer) if currentTimer
currentTimer = setInterval(work, delay)
stop = ->
clearInterval(currentTimer)
clearHighlights()
work = ->
clearHighlights()
$(pieces[pieceIndex]).attr('class', "#{defaultClass} highlight")
if pieceIndex == pieces.length - 1
pieceIndex = 0
pieces.reverse()
runs++
else
pieceIndex++
if runs == stop_at_run
stop()
$ ->
setTimeout(start, 100)