Vue Scroll Snap

A super simple Vue component that allows both fullscreen and horizontal scroll snapping.

Installation

npm install vue-scroll-snap --save

Usage

There are four ways of using Vue Scroll Snap. They are described below. For more a more detailed description, see the example directory.

Vertical

<template>
  <vue-scroll-snap>
    <div class="item"></div>
    <div class="item"></div>
    ...
  </vue-scroll-snap>
</template>

<script>
  import VueScrollSnap from "vue-scroll-snap";

  export default {
    components: {VueScrollSnap},
  };
</script>

<style>

  .item {
    /* Set the minimum height of the items to be the same as the height of the scroll-snap-container.*/
    min-height: 500px;
  }

  .scroll-snap-container {
    height: 500px;
    width: 500px;
  }
</style>

Horizontal

<template>
  <vue-scroll-snap :horizontal="true">
    ...
  </vue-scroll-snap>    
</template>

<script>...</script>

<style>

  .item {
    /* Set the minimum width of the items to be the same as the width of the scroll-snap-container.*/
    min-width: 500px;
  }

  .scroll-snap-container {...}
</style>

Fullscreen Vertical

<template>
  <vue-scroll-snap :fullscreen="true">
    ...
  </vue-scroll-snap>
</template>

<script>...</script>
<style>/* No styling required. */</style>

Fullscreen Horizontal

<template>
  <vue-scroll-snap :fullscreen="true" :horizontal="true">
    ...
  </vue-scroll-snap>
</template>

<script>...</script>
<style>/* No styling required. */</style>

Props

Optional Props

Prop Type Default
fullscreen Boolean false
horizontal Boolean false

GitHub