Skip to content

Instantly share code, notes, and snippets.

@donpark
Created May 3, 2012 18:08
Show Gist options
  • Save donpark/2587746 to your computer and use it in GitHub Desktop.
Save donpark/2587746 to your computer and use it in GitHub Desktop.
Deferred Resizer in CoffeeScript
# Delayed resize task runner
class DeferredResizer
constructor: ->
@timer = null
@tasks = []
addTask: (task) ->
@tasks.push(task) if @tasks.indexOf(task) is -1
doTasks: =>
@timer = null
task false for task in @tasks
schedule: ->
if @timer
clearTimeout @timer
else
starting = true
@timer = setTimeout @doTasks, 100
if starting
task true for task in @tasks
# example usage
resizer = new DeferredResizer()
resizer.addTask (starting) ->
$('.marker').each (i, el) ->
marker = $(@).data('marker')
if starting
marker.hide()
else
marker.update()
marker.show()
$(window).resize (evt) ->
resizer.schedule()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment