vue-plugin-scroll-into-view

0.0.1 • Public • Published

vue-plugin-scroll-into-view

LICENSE Node CodeFactor

Coverage Status Snyk Vulnerabilities for GitHub Repo

Version Downloads

GitHub Stars GitHub Forks GitHub Discussions GitHub closed pull requests GitHub closed issues

vue-scroll-into-view is a simple Vue.js plugin that provides a convenient way to scroll an element into view with just a single line of code. Whether you have a long page with many sections, or you need to navigate to a specific part of the page, this plugin makes it easy to do so.

Features

Scrolls an element into the visible area of the browser window Supports scrolling to an element by $refs, selector, VNode, or HTMLElement Allows for customization of scroll options, such as animation and alignment Easy to install and use in your Vue.js 2 or 3 project

Usage Examples

Inside your code you can do something like this:

Basic usage

<template>
  <div>
    <h1>Hello World</h1>

    <table ref="table">
      <!-- long content -->
    </table>

    <button @click="nextPage"> Next </button>

  </div>
</template>
<script>
export default {
  methods: {
    nextPage() {

      // await requestNextPage();
      
      // scroll to top of the table
      this.$scrollIntoView(this.$refs.table); // refs or VNodes
      
      this.$scrollIntoView('div > table'); // CSS Selectors
    },
  }
}
</script>

Installation

NPM

npm install vue-plugin-scroll-into-view

Yarn

yarn add --dev vue-plugin-scroll-into-view

Adding to your project

index.js

import Vue from 'vue';
import VueScrollIntoView from 'vue-plugin-scroll-into-view';

Vue.use(VueScrollIntoView);

Options

this.$scrollIntoView(ref, options);

Option Type Description Default value
behavior String Defines the transition animation. One of "auto" or "smooth". "auto"
block String Defines vertical alignment. One of "start", "center", "end", or "nearest". "start"
inline String Defines horizontal alignment. One of "start", "center", "end", or "nearest". "nearest"
scrollMode String Defines the scrolling mode. One of "always", "if-needed", or "never". "always"
skipOverflowHiddenElements Boolean Whether to skip scrolling the ancestor elements with overflow: hidden. false
allowHorizontalScroll Boolean Whether to allow horizontal scrolling if the element is wider than the viewport. false
force Boolean Whether to always scroll the element, even if it's already in view. false

Options example

This will scroll the element with the ID my-section into view with default scroll options. You can also pass in custom scroll options if desired:

this.$scrollIntoView('#my-section', { behavior: 'smooth', block: 'center' });

License

The code is available under the MIT license.

Contributing

We are open to contributions, see CONTRIBUTING.md for more info.

You need at least Node 18 to build the project

Package Sidebar

Install

npm i vue-plugin-scroll-into-view

Weekly Downloads

1

Version

0.0.1

License

MIT

Unpacked Size

32.2 kB

Total Files

10

Last publish

Collaborators

  • vitim