Sha256: ec0fbb13ffea2716fbdafd8a313f53ea700cad28db601bf439c2dc194dac97d6

Contents?: true

Size: 806 Bytes

Versions: 1

Compression:

Stored size: 806 Bytes

Contents

class @InfiniteScroll
  
  constructor: (options)->
    @$el = options.$el ? $('.infinite-scroll')
    @offset = options.offset ? 50
    @load = options.load
    @success = options.success
    @error = options.error
    
    @$window = $(window)
    @$document = $(document)
    @$window.scroll _.bind(@onScroll, @)
  
  onScroll: ->
    return if @$el.hasClass('loading')
    return unless @$el.is(':visible')
    return unless @$window.scrollTop() >= (@$document.height() - @$window.height() - @offset)
    
    @loadMore()
  
  loadMore: ->
    xhr = @load(@$el)
    return unless xhr
    
    @$el.addClass('loading')
    xhr.done (html)=>
      @$el.removeClass('loading')
      @$el.append(html)
      @success() if @success
    xhr.fail =>
      @$el.removeClass('loading')
      @error() if @error

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 app/assets/javascripts/app/infinite_scroll.coffee