Vue Flickity Component

1.2.1 · abandoned · verified Sun Apr 19

vue-flickity is a legacy Vue 2 component that provides a wrapper for the Flickity.js carousel library. It enables developers to integrate responsive, touch-friendly carousels into Vue 2 applications by exposing Flickity's configuration options via props and methods through component refs. Maintained at version 1.2.1 and last published seven years ago, this package is considered abandoned and is not compatible with Vue 3 or later versions. Its primary utility is for existing Vue 2 projects requiring Flickity integration, offering a convenient component-based API over direct Flickity instantiation. There is no ongoing development or planned updates.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to integrate `vue-flickity` into a Vue 2 application, configure it with various options, and implement custom navigation using component methods.

import Vue from 'vue';
import Flickity from 'vue-flickity';

// You would typically import Flickity's CSS in your main entry file
// import 'flickity/css/flickity.css'; 

new Vue({
  el: '#app',
  components: {
    Flickity
  },
  
  data() {
    return {
      flickityOptions: {
        initialIndex: 1,
        prevNextButtons: true,
        pageDots: true,
        wrapAround: true,
        cellAlign: 'left'
        // any options from Flickity can be used
      }
    }
  },
  
  methods: {
    next() {
      if (this.$refs.flickity) {
        this.$refs.flickity.next();
      }
    },
    
    previous() {
      if (this.$refs.flickity) {
        this.$refs.flickity.previous();
      }
    }
  },
  template: `
    <div id="app">
      <h1>My Flickity Carousel</h1>
      <flickity ref="flickity" :options="flickityOptions">
        <div class="carousel-cell" style="width: 80%; height: 200px; background-color: #f0f0f0; margin-right: 10px; display: flex; align-items: center; justify-content: center;">Cell 1</div>
        <div class="carousel-cell" style="width: 80%; height: 200px; background-color: #e0e0e0; margin-right: 10px; display: flex; align-items: center; justify-content: center;">Cell 2</div>
        <div class="carousel-cell" style="width: 80%; height: 200px; background-color: #d0d0d0; margin-right: 10px; display: flex; align-items: center; justify-content: center;">Cell 3</div>
        <div class="carousel-cell" style="width: 80%; height: 200px; background-color: #c0c0c0; margin-right: 10px; display: flex; align-items: center; justify-content: center;">Cell 4</div>
        <div class="carousel-cell" style="width: 80%; height: 200px; background-color: #b0b0b0; margin-right: 10px; display: flex; align-items: center; justify-content: center;">Cell 5</div>
      </flickity>

      <!-- Example custom navigation buttons -->
      <button @click="previous()">Custom Previous Button</button>
      <button @click="next()">Custom Next Button</button>
    </div>
  `
});

view raw JSON →