• Stars
    star
    6,620
  • Rank 5,680 (Top 0.2 %)
  • Language
    JavaScript
  • Created about 9 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Finally, a "back to top" button that behaves like a real elevator.

elevator.js

Finally, a "back to top" button that behaves like a real elevator, by adding elevator music to quietly soothe the awkwardness that can ensue when being smoothly scrolled to the top of the screen.

This is very serious stuff, here's a demo!

Instructions

Elevator.js is a stand alone library (no jquery, or the likes) so usage is pretty straight forward. All styling of elements is up to you. Elevator.js only handles the audio management, and the scroll functionality!

JS

Elevator.js lives entirely within the js realm, which makes things fairly simple to use.

You'll need to create a new instance of Elevator, and pass it some audio elements.

<script>
// Elevator script included on the page, already.

window.onload = function() {
  var elevator = new Elevator({
    mainAudio: '/src/to/audio.mp3',
    endAudio: '/src/to/end-audio.mp3'
  });
}

// You can run the elevator, by calling.
elevator.elevate();
</script>

You can also add an "element" option, clicking this element will invoke the "Scroll to top" functionality, we all love and crave.

<div class="elevator-button">Back to Top</div>

<script>
// Elevator script included on the page, already.

window.onload = function() {
  var elevator = new Elevator({
    element: document.querySelector('.elevator-button'),
    mainAudio: '/src/to/audio.mp3',
    endAudio: '/src/to/end-audio.mp3'
  });
}
</script>

If you don't want to scroll to the top, a custom target can be specified by adding a "targetElement" option:

<div class="elevator-button">Take the elevator to the target</div>

<script>
// Elevator script included on the page, already.

window.onload = function() {
  var elevator = new Elevator({
    element: document.querySelector('.elevator-button'),
    targetElement: document.querySelector('#elevator-target'),
    mainAudio: '/src/to/audio.mp3',
    endAudio: '/src/to/end-audio.mp3'
  });
}
</script>

If you want to scroll to a point on the page with some extra padding on the top, simply add the "verticalPadding" option:

<div class="elevator-button">Take the elevator to the target</div>

<script>
// Elevator script included on the page, already.

window.onload = function() {
  var elevator = new Elevator({
    element: document.querySelector('.elevator-button'),
    targetElement: document.querySelector('#elevator-target'),
    verticalPadding: 100,  // in pixels
    mainAudio: '/src/to/audio.mp3',
    endAudio: '/src/to/end-audio.mp3'
  });
}
</script>

If you're really serious (boring), you don't have to use audio... and can also set a fixed time to scroll to the top

<div class="elevator-button">Back to Top</div>

<script>
// Elevator script included on the page, already.

window.onload = function() {
  var elevator = new Elevator({
    element: document.querySelector('.elevator-button'),
    duration: 1000 // milliseconds
  });
}
</script>

If you use elevator.js in combination with other code, you might want to use callbacks

<script>
window.onload = function() {
   new Elevator({
       element: document.querySelector('.elevator-button'),
       mainAudio: '/src/to/audio.mp3',
       endAudio: '/src/to/end-audio.mp3',
       duration: 5000,
       startCallback: function() {
         // is called, when the elevator starts moving
       },
       endCallback: function() {
         // is called, when the elevator reached target level
       }
   });
}
</script>

NPM

The package is also available via NPM

License

Elevator.js is covered by the MIT License.

Audio in the Demo was bought via Pond5, you will need to license your own.

Copyright (C) ~ Tim Holman ~ [email protected]

More Repositories

1

github-corners

A fresher "Fork me on GitHub" callout.
HTML
4,891
star
2

zenpen

A minimalist writing zone.
JavaScript
3,765
star
3

cursor-effects

Old-school cursor effects for your browser built with modern JavaScript
JavaScript
3,181
star
4

intense-images

A simple library to view large images up close using simple mouse interaction, and the full screen.
JavaScript
2,572
star
5

generative-artistry

A website for self coding generative art tutorials.
JavaScript
833
star
6

giflinks

The best thing to happen to the internet since the <a> tag.
JavaScript
796
star
7

dom-animator

A nifty javascript library to run animations, hidden in comment nodes, within the dom.
JavaScript
628
star
8

ascii-morph

Library to animate between two ascii images -
JavaScript
570
star
9

obnoxious.css

Animations for the strong of heart, and stupid of mind.
CSS
506
star
10

console-dot-frog

Forget console logs, console.frog is where its all at!
JavaScript
315
star
11

overscroll

Javascript for adding small easter eggs when over scrolling on apple devices.
JavaScript
295
star
12

texter

Texter is a little app that lets you explore your creativity by drawing with text.
JavaScript
273
star
13

the-indie-web

A hotspot for indie creations on the web
CSS
250
star
14

tutorial-markdown

Interactive coding tutorials with markdown
JavaScript
241
star
15

what-have-you-made-today

Chrome & FireFox extension to replace the default home page. What have you made today?
Vue
231
star
16

discreet-twitter-ui

A minimal ui/ux concept for twitter buttons allowing hover reveals under an icon.
CSS
221
star
17

office-simulator

Miss the office life? You won't any more with this wonderful office slack simulator.
JavaScript
160
star
18

tileJs

Windows Metro Tiles with css3 and javascript
JavaScript
154
star
19

buddy

Chrome extension, and friend from hell
JavaScript
134
star
20

smelvetica

Sorry y'all, got a takedown from monotype.
134
star
21

bsod.js

Blue screen of death for the web, because debugging shouldn't be easy.
JavaScript
112
star
22

binary-music-player

A binary music player, with customizable notes & playback.
HTML
95
star
23

mosquito-js

An annoying mosquito created with the web audio api.
JavaScript
93
star
24

unicoder.js

A small js library to convert text into ⓣⓔⓧⓣ.
JavaScript
92
star
25

console-fright-night

Open the browser console, get a fright. Just like that!
JavaScript
89
star
26

the-zen-zone

Digital meditation aid
JavaScript
80
star
27

the-pattern-library

A library of beautiful patterns, created by talented designers.
JavaScript
74
star
28

palettab

New fonts and colors with every new tab.
JavaScript
68
star
29

image-nodes

Javascript experiment using image data to create a small interactive particle system
CSS
58
star
30

emoji-intensifies

A quick and simple tool to make shaky "intensifies" emoji.
JavaScript
54
star
31

meettheipsums

A website to link out to all of the awesome filler text in the world.
HTML
52
star
32

s.js

Canvas JavaScript polyfill for the vital and pivotal S we all drew in school.
JavaScript
51
star
33

resizer

A small library to improve the user experience of a text box, by decreasing the font size slightly if it is filled with text.
JavaScript
49
star
34

the-internet

Basically the internet (or most important parts) in a module.
JavaScript
49
star
35

beautiful-curves

A simple generative drawing app using the html5 canvas
JavaScript
39
star
36

cant-not-tweet-this

Taking annoying social media popup crap to the next level!
CSS
37
star
37

concentrics

A little web experiment, using concentric circles and squares to create abstract arty stuff!
JavaScript
35
star
38

abstract-clocks

Abstract Clocks, telling the time in abstract & beautiful ways.
HTML
34
star
39

tetris-pieces

A beautiful AI Tetris, playing on your wall!
JavaScript
33
star
40

long-doge-challenge

The Long Doge Challenge
HTML
32
star
41

rasterizer

Experimenting with rasterization with javascript + the html5 canvas
JavaScript
30
star
42

checkboxrace

A checkbox based race
HTML
26
star
43

asciiFaceSaver

An osx screen saver, looping over various ascii faces. Written in Swift.
Swift
26
star
44

interactive-banners

A few html5 experiments using js/canvas to create interactive banners
JavaScript
25
star
45

useless-web-archive

An archive for the sites of "the useless web"
HTML
22
star
46

puginarug

Honor the Pug in a Rug
HTML
20
star
47

Dripping-Paint

Small html5 canvas experiment to simulate a simple dripping paint effect
JavaScript
19
star
48

mondrian-and-me

A "Useless Website" honoring Piet Mondrian's fantastic art.
HTML
19
star
49

tholman-blog

Source to my personal blog and website.
CSS
17
star
50

thats-the-finger

The finger. Thats it.
JavaScript
13
star
51

star-spangled-browser

A chrome plugin to blow minds when hovering the word america.
JavaScript
12
star
52

one-square-minesweeper

A game of minesweeper with only one square to sweep. Fun for the whole family.
CSS
10
star
53

scripts-for-life

A few bash shells scripts I use to make life easier.
Shell
8
star
54

human-music

Sit back and stretch your legs and enjoy the relaxing tunes of Earth radio.
HTML
5
star
55

tholman

A repo about me!
1
star