sky-scroll

0.1.0 • Public • Published

SkyScroll

A Vue plugin for scroll/resize events and calculations.

Description

This plugin exposes a handful of useful properties on all Vue instances, including scroll y and x position, window height and width as well as document height and width.

Installation

npm install sky-scroll

or

yarn add sky-scroll

Usage

Import and install SkyScroll:

import Vue from 'vue';
import SkyScroll from 'sky-scroll';
 
Vue.use(SkyScroll);
 

$SkyScroll is available on any Vue instance and exposes a number of useful scroll-related properties.

In a component template:

<div class="example-component">
    <span>{{$SkyScroll.scroll.y}}</span>
    <span>{{$SkyScroll.scroll.x}}</span>
    <span>{{$SkyScroll.scroll.deltaY}}</span>
    <span>{{$SkyScroll.scroll.directionY}}</span>
    <span>{{$SkyScroll.scroll.last.y}}</span>
    <span>{{$SkyScroll.window.width}}</span>
    <span>{{$SkyScroll.document.height}}</span>
</div>

In the component $SkyScroll prop, a few options and scroll and resize callbacks are also available:

export default {
    name: 'ExampleComponent',
    data() {
        // ...
    },
    methods: {
        // ...
    },
    $SkyScroll: {
        // scroll [function]
        // Callback for scroll event
        scroll({ scroll, window, document }) {
            console.log('scroll y', scroll.y);
            console.log('scroll last y', scroll.last.y);
            console.log('scroll direction y', scroll.directionY);
            console.log('window width', window.width);
            console.log('document height', document.height);
        },
        // resize [function]
        // Callback for resize event
        resize({ scroll, window, document }) {
            console.log('scroll x', scroll.x);
            console.log('window width', window.width);
            console.log('document height', document.height);
        },
        // onMounted [boolean] - default: true
        // If true scroll and resize callbacks a executed on component mount
        onMounted: true.
        // dimensions [boolean] - default: false
        // Determines if SkyScroll should keep track of $el dimensions. If true
        // this.$dimensions will be added to the instance, which holds the
        // boundingClientRect of this.$el - and automatically keeps it up to
        // date on resize.
        dimensions: false,
    },
};

Credits

This module is made by the Frontenders at skybrud.dk. Feel free to use it in any way you want. Feedback, questions and bugreports should be posted as issues. Pull-requests appreciated!

Readme

Keywords

none

Package Sidebar

Install

npm i sky-scroll

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

73.4 kB

Total Files

20

Last publish

Collaborators

  • semilfred
  • tfjordside
  • matpeder