npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sequence-runner

v1.0.2

Published

Create unique loading text, HTML sequences, and even sprite animations.

Downloads

8

Readme

SequenceRunner

Easily create text and animation sequences.

This class was originally conceived to animate loading text, but then extended to support custom content (including DOM elements). It can be used to create unique loading text, HTML sequences, and even sprite animations.

sample

See the above gif in its true form (with code samples for each sequence).

Usage

Node

npm i sequence-runner -S

let SequenceRunner = require("sequence-runner");

Minified version:

let SequenceRunner = require("sequence-runner/dist/SequenceRunner.min");

npm

Browser

import SequenceRunner from "sequence-runner";

Minified version:

import SequenceRunner from "sequence-runner/dist/SequenceRunner.min";

Script tag:

<script src="node_modules/sequence-runner/dist/SequenceRunner.min.js"></script>

Notes

  • The source code is written in ES6 and transpiled with Babel.
  • If you need to create documentation for local use, run npm run doc. Otherwise, visit the online docs.

Samples

Most simple use case: Animating an ellipsis. The below logic will use all the default settings to create a most basic loading text sequence.

<span class="sequence-runner"></span>

new SequenceRunner().start();

Default settings:

console.log(new SequenceRunner().settings);

/*
{
  selector: ".sequence-runner",
  content: ".",
  duplicate: 3,
  delay: 500,
  loop: null
}
*/

Animate custom text, duplicate it 10 times, and loop through it twice.

<span class="sequence-runner"></span>

new SequenceRunner({
  content: "hello.",
  duplicate: 5,
  loop: 2
}).start();

Run through a sequence of different content.

<p class="sequence-runner"></p>

new SequenceRunner({
  content: [
    "hi",
    "ho",
    "<b>hum</b>"
  ],
  delay: 500
}).start();

Some dummy content with change and complete listeners.

<span id="dummy-container"></span>

let seq = new SequenceRunner({
      selector: "#dummy-container",
      content: [
        "foo",
        20
      ],
      loop: 3
    });

seq.onChange((content, count, loop) => {
  console.log(content, count, loop);
});

seq.onComplete((content, count, loop) => {
  console.log("done!");
});

seq.start();

Animate a sprite.

<div id="wrapper"></div>

let keyframes = 7,
    at = 0,
    img = "https://s-media-cache-ak0.pinimg.com/originals/65/17/a7/6517a749c666bb0a788b0452d00e514a.png";

new SequenceRunner({
  selector: "#wrapper",
  duplicate: 1,
  delay: 90,
  content: `<div id="sprite" style="background-image: url(${img}); height: 95px; width: 60px"></div>`
}).start().onChange((content, count, loop) => {
  if (loop % keyframes == 1) {
    at = 0;
  }

  document.querySelector("#sprite").style.backgroundPosition = `-${60 * at}px 0`;
  at++;
});

License

Copyright (c) 2017 Leandro Silva (http://grafluxe.com)

Released under the MIT License.

See LICENSE.md for entire terms.