vue-stacked-carousel

stacked carousel with perspective
1,615 1
Install
npm install vue-stacked-carousel
Latest Version:1.0.14
Vue:2
License:MIT
Last Updated:Jun 15, 2018
Links: GitHub  ·  npm
Maintainer: fluksikarton

css customizable stacked carousel, Live Demo

Installation

# install dependencies
npm install vue2-touch --save

npm install vue-stacked-carousel --save

Basic Usage

Use Vue2Touch

import Vue2Touch from 'vue2-touch'
Vue.use(Vue2Touch)
import { VueStackedCarousel } from 'vue-stacked-carousel';

export default {
  components: {
    VueStackedCarousel
  }
};
<vue-stacked-carousel :items="vueStackedCarouselItems">
  <div slot-scope="{ item, index, opacity }" class="card">
    <div class="inner-card" :style="`opacity: ${opacity}`">
      <h3>{{item.title}}</h3>
      <p>{{item.description}}</p>
      <span>item - {{index}}</span>
    </div>
  </div>
  <span slot="arrow-left">arrow</span>
  <span slot="arrow-right">arrow</span>
</vue-stacked-carousel>
data() {
  return {
    vueStackedCarouselItems: [
      {
        title: 'A',
        description: 'Something else here',
      },
      {
        title: 'B',
        description: 'Something else here',
      },
      {
        title: 'C',
        description: 'Something else here',
      },
      {
        title: 'D',
        description: 'Something else here',
      },
      {
        title: 'E',
        description: 'Something else here',
      },
    ],
  };
},
<style>
  .card {
    width: 327px;
    border-radius: 5px;
    background-color: #ffffff;
    box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
  }
  .inner-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    transition: opacity .3s linear;
    user-select: none;
  }
  .vue-stacked-carousel-arrow.arrow-left {
    left: -70%;
  }
  .vue-stacked-carousel-arrow.arrow-right {
    right: -70%;
  }
</style>

Props

Prop Data Type Required Description
items Array true Your array with data
itemDepthRatio Number Depth in pixels from each item default (120px)
itemDistance Number Distance in pixels between each item default (60px)
transitionDuration Number Duration of animation between items (0.3 default)
transitionWait Boolean Default is (true), if set to false, it will not wait the transition to end on arrow click
transitionTimingFunction String default (ease-in-out)
arrowLeftClass String default (arrow-left)
arrowRightClass String default (arrow-right)

Author

© [Georgi Antonov]

Related Packages

vue-carousel-lite

Fast, Lightweight Vue Carousel With Touch, Mouse, Keyboard, Wheel & SSR support

5,144 0
eslint-plugin-vue

Official ESLint plugin for Vue.js

266,364,830 4,591
markdown-to-jsx

A very fast and versatile markdown toolchain. AST, React, React Native, SolidJS,...

214,042,213 2,394
vee-validate

Painless forms for Vue.js

45,982,707 11,260
vue-resize

Detects DOM element resizing

45,491,034 505

Version History

Version Released Vue License
1.0.14 ^2.5.16 MIT
1.0.13 ^2.5.16 MIT
1.0.12 ^2.5.16 MIT
1.0.11 ^2.5.16 MIT
1.0.10 ^2.5.16 MIT