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

toolslide.js

v1.2.5

Published

Minimalistic customizable sliding panel without jQuery

Downloads

16

Readme

toolslide.js

Minimalistic customizable slide panel (without jQuery)

Table of contents

Quick start

Several quick start options are available:

Download the latest build

Development
Production

Install From Bower

bower install toolslide.js --save

Install From Npm

npm install toolslide.js --save

Done!

Usage

Including files:

<link rel="stylesheet" href="/path/to/toolslide.css">
<script src="/path/to/toolslide.js"></script>

Required HTML structure

<div id="toolslide">
	<div class="ts-container">
        <div class="ts-nav-container">
			<div class="ts-nav-item" ts-target="first">
			</div>
			<!-- Add more navigation buttons here -->
		</div>
		<div class="ts-content-container">
			<div id="first" class="ts-content-item">
				<div class="example-panel">
					<span>First panel content goes here</span>
				</div>
			</div>
			<!-- Add more content panels here -->
		</div>
	</div>
</div>
Attributes

toolslide.js makes use of html attributes to bind navigation elements to respective content.

Attribute | Description | ----------- | ------------------------------------- | ts-target | Specifies id of a target panel triggered with this navigation item

Initialization

All you need to do is invoke toolslide on an element:

var myToolslide = toolslide(elemment, options);

You can also initialize with css selector string:

var myToolslide = toolslide("#elementId", options);

Examples

There are some example usages that you can look at to get started. They can be found in the examples folder.

Options

toolslide.js can accept an options object to alter the way it looks and behaves. If no options object is passed default values are used. The structure of an options object is as follows:

{
  position: "left",
  height: "100%",
  width: "300px",
  startOpen: true,
  closeable: true,
  autoclose: false,
  autocloseDelay: 5000,
  clickOutsideToClose: true,
  minClosedSize: 0,
  toggleButton: "",
  embed: false,
  navigationItemWidth: "50px",
  navigationItemHeight: "50px",
  navigationOffsetX: "0px",
  navigationOffsetY: "0px",
  animations: {
    replace: "crossfade 0.5s ease-in-out",
    toggle: "slide 0.5s ease",
  },
  listeners: {
    beforeOpen: function(panel) {},
    afterOpen: function(panel) {},
    berforeClose: function(panel) {},
    afterClose: function(panel) {},
    beforeToggle: function(oldContent, newContent) {}
    afterToggle: function(oldContent, newContent) {}
  }

Here is the explanation of options object:

Option | Type | Description | Examples ---------------------- | --------------- | ----------------------------------------------------------------- | ----------- activePanel | string, Element | Position of the panel on the screen | "#elementId" position | string | Position of the panel on the screen | "top", "bottom", "left", "right" height | string | Panel height | "200px", "20%" width | string | Panel width | "200px", "20%" startOpen | boolean | Open panel after initialization | true, false closeable | boolean | Allow panel to be closed (by clicking active navigation element) | true, false autoclose | boolean | Allow panel to be auto closed (only when mouse cursor is outside) | true, false autocloseDelay | int | Auto close delay in miliseconds | 5000 clickOutsideToClose | boolean | Allow panel to be closed when clicked outside | true, false minClosedSize | int | Minimum panel size when closed | 0 toggleButton | string | Id of an element used as external toggle button | "" embed | boolean | Whether to embed panel within container or overlay it | true, false navigationItemWidth | string, number | Width of the navigation element | "50px", "5%" navigationItemHeight | string, number | Height of the navigation element | "50px", "5%" navigationOffsetX | string, number | Horizontal offset of the navigation elements container | "0px", "5%" navigationOffsetY | string, number | Vertical offset of the navigation elements container | "0px", "5%" animations.replace | string | Animation used when changing active panel | "slide 1s ease", "slidefade 2s ease-in", { type: "crossfade", easing: "ease", speed: ".5s" } animations.toggle | string | Animation used when panel is opened/closed | "slide 0.5s ease", { type: "slide", easing: "ease", speed: "1s" } listeners.beforeOpen | function | Callback fired before panel is opened | function (panel) {...} listeners.afterOpen | function | Callback fired after panel is opened | function (panel) {...} listeners.beforeClose | function | Callback fired before panel is closed | function (panel) {...} listeners.afterClose | function | Callback fired after panel is closed | function (panel) {...} listeners.beforeToggle | function | Callback fired before active content is changed | function (old, new) {...} listeners.afterToggle | function | Callback fired after active content is changed | function (old, new) {...}

Methods

Methods are called on toolslide instances. You shoud save the instances to variable to have further access to it.

void open()

Show the slide panel.

toolslide.open();

void close()

Hide the slide panel.

toolslide.close();

bool isOpen()

Check if panel is opened.

toolslide.isOpen();

bool isActive(target)

Check if target content element is active. Accepts DOM element as well as just the id.

toolslide.isOpen("elementId");

void setActiveById(elementId)

Sets element with specified id as new active item.

toolslide.setActiveById("elementId");

void setActiveByIndex(index)

Sets element at specified index as active item.

toolslide.setActiveByIndex(0);

Events

toolslide.js provides custom events for some of it's actions. Appropriate callbacks can be specified in options.

Event | Description | Arguments ------------- | --------------------------------------- | ------------------ | beforeOpen | Fires before panel is opened. | panelElement afterOpen | Fires after panel is opened. | panelElement beforeClose | Fires before panel is closed. | panelElement afterClose | Fires after panel is closed. | panelElement beforeToggle | Fires before active content is changed. | oldContentElement, newContentElement afterToggle | Fires after active content is changed. | oldContentElement, newContentElement

Copyright and license

Licensed under MIT license.

^ back to top