Sha256: c9dcd2e012366095aa25601bead26e8b526f54bff7d691b57211af21d8a7a423

Contents?: true

Size: 810 Bytes

Versions: 3

Compression:

Stored size: 810 Bytes

Contents

#= require partystreusel/base

class Offcanvas extends Partystreusel.Base
  @className = 'Offcanvas'

  constructor: (el) ->
    super
    @$el.find('.js-offcanvas__toggler').on 'click', @toggle
    @$el.find('.offcanvas__overlay').on 'click', @toggle
    @$el.find('.offcanvas-nav__link').on 'click', @toggleNavLink

  toggle: =>
    @$el.toggleClass('offcanvas--open')
    if @$el.hasClass('offcanvas--open')
      @trigger('open', @$el)
    else
      @trigger('close', @$el)

  toggleNavLink: (e) =>
    navLink = $(e.target).closest('.offcanvas-nav__link')
    subNav = navLink.next('.offcanvas-nav__sub')
    return if subNav.length == 0
    e.preventDefault()
    navLink.toggleClass('offcanvas-nav__link--active')
    subNav.toggleClass('offcanvas-nav__sub--open')

Partystreusel.Offcanvas = Offcanvas

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
partystreusel-2.0.0 app/assets/javascripts/partystreusel/offcanvas.js.coffee
partystreusel-1.2.0 app/assets/javascripts/partystreusel/offcanvas.js.coffee
partystreusel-1.1.1 app/assets/javascripts/partystreusel/offcanvas.js.coffee