UNPKG

vue3-scroll-picker

Version:

Vue 3 scroll picker plugin.

128 lines (110 loc) 6.39 kB
# vue3-scroll-picker Vue 3 scroll picker plugin. ### Demo [Demo](https://hj29.github.io/vue3-scroll-picker/) [Demo Code](https://github.com/HJ29/vue3-scroll-picker/tree/master/example/src/) ### Install ```bash yarn add vue3-scroll-picker npm i --save vue3-scroll-picker ``` ### Register Global Component ```js import { createApp } from 'vue'; import App from './App.vue' import ScrollPicker from 'vue3-scroll-picker'; const app = createApp(App); app.use(ScrollPicker); app.mount('#app') ``` ### Register Local Component ```js import ScrollPicker from 'vue3-scroll-picker'; export default { components: { ScrollPicker, }, }; ``` ### Example ```vue <template> <scroll-picker :options="options" v-model="selections" /> </template> ``` ```vue <script> import { defineComponent, reactive, toRefs } from 'vue'; const exampleOptions = [ [ { label: "A1", value: "a1" }, { label: "A2", value: "a2" }, ], [ { label: "B1", value: "b1" }, { label: "B2", value: "b2" }, ], ]; export default defineComponent({ setup() { const state = reactive({ options: exampleOptions, selections: ['a2','b1'], }); return { ...toRefs(state), }; } }); </script> ``` ### Props | Name | Type | Required | Default | Notes | | ---------------------- | -------------------------------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | :options | string[][]<br>{ label: string; value: string }[][] | yes | [] | Options use can select.<br> label value type: label as display, value to emit<br>label value example: [ [ { label: 'A1', value: 'a1' }, { label: 'A2', value: 'a2' } ], [ { label: 'B1', value: 'b1' } ] ]<br>string type: same label and value<br>string type example: [ [ 'a1', 'a2' ], [ 'b1' ] ] | | :valueModel \| v-model | string[] | yes | [] | Array value emit<br>Example: [ 'a2', 'b1' ] | | active-style | string | no | '' | css (change active option style)style | | inactive-style | string | no | '' | css (change inactive option style)style | | active-class | string | no | '' | css class | | inactive-class | string | no | '' | css class | | wheel-speed | number | no | 1 | adjust mouse wheel speed with this value.<br>lower wheel speed, slower scroller | ### Event | Name | Description | | ------------------ | -------------------------- | | @update:modelValue | event emit when use select | ### Slot | Name | prop | Description | | --------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------- | | v-slot:option | active: boolean<br/>item: string \| { label: string; value: string } | override option card | | v-slot:center-overlay | | override center active option area, able to add seperator to active area | | v-slot:top-overlay | | override top inactive option area, able to change top gradient color | | v-slot:bottom-overlay | | override bottom inactive option area, able to change bottom gradient color | ## Project setup ``` yarn ``` ### Compiles and hot-reloads for development ``` yarn serve ``` ### Compiles and minifies for production ``` yarn build ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/).