ue5963
12/20/2015 - 9:13 AM

scroll event (screen の上から下まで見える範囲にいたとき発火)

scroll event (screen の上から下まで見える範囲にいたとき発火)

option = 
  selector: "#Myselector"
  delay: 50
# ライブラリ登録
$(selector).on('targetOnscroll', option, -> null)

# screen の上から下まで見える範囲にいたとき発火
# Firing selector in scroll
$.event.special.targetOnscroll = 
  setup: (option, namespace) ->
    defaults = $.extend({
      selector: ''
      delayHeight: 100
    }, option)
    $(this).each ->
      self = $(this)
      sct = defaults.selector
      # load, scroll, resize イベント登録(namespace: sct)
      EVENTS = 'load.' + sct + ' ' + 'scroll.' + sct + ' ' + 'resize.' + sct
      $(window).on EVENTS, ->
        elmTop = self.offset().top
        scrTop = $(window).scrollTop()
        elmHeight = self.height()
        windowHeight = $(window).height()
        if scrTop > elmTop - (defaults.delayHeight) or scrTop + windowHeight > elmTop + elmHeight
          # console.log '発火!', scrTop
          window.SPSDK.util.generateActs(defaults.actData)
          debugControl defaults.selector
          # イベント削除
          npc = '.' + sct
          $(window).off npc
        # if scrTop + windowHeight < elmTop
        #   console.log 'scrTop! out', scrTop
        return
      return