2.0.0 • Published 9 years ago

vue-side-nav v2.0.0

Weekly downloads
26
License
MIT
Repository
github
Last release
9 years ago

vue-side-nav

for the best user-experience when navigating your side, you can use a responsive side-nav.

Demo

Install

npm install --save-dev vue-side-nav
// vue touch@next - not released on npm currently
npm install --save-dev git://github.com/vuejs/vue-touch.git#next

// vue@1.0
npm install --save-dev vue-side-nav@1 vue-touch@1

or include build/bundle.js.

Usage

# somewhere
Vue.use(require('vue-touch'))

# in your component
components:
  "side-nav": require("vue-side-nav")
# or, when using bundle.js
components:
  "side-nav": window.vueComps.sideNav
<side-nav>
  <li>First Text<li>
</side-nav>
<!-- sibling elements will be set to margin-left:240px for `fixed` and `is-fixed=true` -->
<container>
</container>

For examples see dev/.

Props

Nametypedefaultdescription
widthNumber240width of the side-nav
fixed-screen-sizeNumber992Used with fixed. Above this size, the menu will stay opened.
not-dismissableBooleanfalseA click on the overlay will not dismiss it
close-on-clickBooleanfalseAny click within the side-nav will close it
fixedBooleanfalseshould always show on large screens
is-openedBooleanfalseopens or closes the side-nav - use in conjuction with toggled event
rightBooleanfalseattach to the right side instead of the left
transitionFunctionno-transitionwill be called on open and close with {el,style,cb}.
classvue class"side-nav"class of the ul
stylevue style[]style of the ul
idString-id of the ul
opacityNumber0.5opacity of the overlay
z-indexNumber1000minimum zIndex of the overlay, cannot be lower than 100 (see vue-overlay for specifics)

Menu will be visibile when either is-fixed or is-opened is true.

Events

Namedescription
before-enterwill be called before open animation
after-enterwill be called when opened
before-leavewill be called before close animation
after-leavewill be called when closed
fixed(isFixed:Boolean)emitted when menu get fixed or unfixed on large screen.
toggled(isOpened:Boolean)emitted when menu gets opened or closed.

Transition

You can provide a transition like this:

Velocity = require("velocity-animate")

template: "<side-nav transition='moveIn'></side-nav>",
methods:{
  moveIn: function ({el,style,cb}) {
    Velocity el, "stop"
    Velocity el, style, {
      duration: 300,
      queue: false,
      easing: 'easeOutQuad',
      complete: cb
    }
  }
}

The background is managed by vue-overlay. See here for an example on how to change its fading function.

Changelog

  • 2.0.0
    now compatible with vue 2.0.0
    close overlay on destroy

  • 1.1.0
    events are renamed after vue transitions
    added toggled event

  • 1.0.1
    added z-index prop

  • 1.0.0
    renamed hide-on-screen-size to fixed-screen-size

  • 0.3.0
    renamed not-dismissible to not-dismissable. added close-on-click

Development

Clone repository.

npm install
npm run dev

Browse to http://localhost:8080/.

License

Copyright (c) 2016 Paul Pflugradt Licensed under the MIT license.

2.0.0

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.3.0

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago