Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A lightweight scroll animation javascript library without any dependency

License

NotificationsYou must be signed in to change notification settings

hsnaydd/moveTo

Repository files navigation

A lightweight (only 1kb gzipped) scroll animation javascript library without any dependency.

Demo

Installation

Using npm

$ npm install moveto --save

Using Yarn

$ yarn add moveto

Usage

constmoveTo=newMoveTo();consttarget=document.getElementById('target');moveTo.move(target);// Or register a triggerconsttrigger=document.getElementsByClassName('js-trigger')[0];moveTo.registerTrigger(trigger);

Trigger HTML markup

You can pass all options as data attributes with themt prefix. Option name should be written in kebab case format, for example:

<ahref="#target"class="js-trigger"data-mt-duration="300">Trigger</a><!-- Or --><buttontype="button"class="js-trigger"data-target="#target"data-mt-duration="300">Trigger</button>

Options

The following options are available:

newMoveTo({tolerance:0,duration:800,easing:'easeOutQuart',container:window})
OptionDefaultDescription
tolerance0The tolerance of the target to be scrolled, can be negative or positive
duration800Duration of scrolling, in milliseconds
easingeaseOutQuartEase function name
containerwindowThe container been computed and scrolled
callbacknoopThe function to be run after scrolling complete. Target passes as the first argument

API

move(target, options)

Start scroll animation from current position to the anchor point.

target

Type: HTMLElement|Number

Target element/position to be scrolled. Target position is the scrolling distance. It must be negative if the upward movement is desired.

options

Type: Object

Pass custom options.

registerTrigger(trigger, callback)

trigger

Type: HTMLElement

This is the trigger element for starting to scroll when on click.

callback

This is the callback function to be ran after the scroll completes. This will overwrite the callback option.

addEaseFunction(name, fn)

Adds custom ease function.

name

Type: String

Ease function name.

fn

Type: Function

Ease function. SeeEasing Equations for more ease functions.

Examples

Pass ease function(s) when creating an instance
document.addEventListener('DOMContentLoaded',function(){consteaseFunctions={easeInQuad:function(t,b,c,d){t/=d;returnc*t*t+b;},easeOutQuad:function(t,b,c,d){t/=d;return-c*t*(t-2)+b;}}constmoveTo=newMoveTo({duration:1000,easing:'easeInQuad'},easeFunctions);consttrigger=document.getElementsByClassName('js-trigger')[0];moveTo.registerTrigger(trigger);});
Working with callback function
document.addEventListener('DOMContentLoaded',function(){constmoveTo=newMoveTo({duration:1000,callback:function(target){// This will run if there is no overwrite}});consttrigger=document.getElementsByClassName('js-trigger')[0];moveTo.registerTrigger(trigger,function(target){// Overwrites global callback});// OrmoveTo.move(1200,{duration:500,callback:function(){// Overwrites global callback}});});
Unregister a trigger
document.addEventListener('DOMContentLoaded',function(){constmoveTo=newMoveTo();consttrigger=document.getElementsByClassName('js-trigger')[0];// Register a triggerconstunregister=moveTo.registerTrigger(trigger,{duration:500});// Unregister a triggerunregister();});
Back to top
document.addEventListener('DOMContentLoaded',function(){constmoveTo=newMoveTo();consttriggers=document.getElementsByClassName('js-back-to-top');for(vari=0;triggers.length<i;i++){moveTo.registerTrigger(triggers[i]);}});
<ahref="#"class="js-back-to-top"data-mt-duration="300">Back to top!</a>

Development setup

# To install dev dependencies run:$ yarn# Or so if using npm:$ npm install# To start the development server run:$ yarn start# Or so if using npm:$ npm run start# To lint your code run:$ yarn lint# Or so if using npm:$ npm run lint# To make a full new build run:$ yarn build# Or so if using npm:$ npm run build# To run tests:$ yarntest# Or so if using npm:$ npmtest

Browser support

It should work in the current stable releases of Chrome, Firefox, Safari and Edge. To add support for older browsers, consider including polyfills/shims for therequestAnimationFrame andElement.scroll.

License

Copyright (c) 2017 Hasan Aydoğdu. See theLICENSE file for license rights and limitations (MIT).


[8]ページ先頭

©2009-2025 Movatter.jp