1.0.4 • Published 5 years ago

draad v1.0.4

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Draad.js

Simple javascript plugin without any dependencies. It helps with creating designs that contains something like treasure hunt map or timeline path.

It is plain JS (ES6) script with babelized (ES5) version using Babel JS compiler.

When is called Draad.js will create an SVG element that connects all the elements with defined class and it will be by default located in the body. SVG parent can be changed via options.

NPM

DEMO 1

DEMO 2

How to use

new Draad();

Minimum setup

const newDraad = new Draad('connectingElementClass');

It needs unique class for the elements that needs to be connected

<span class="connectingElementClass"></span>

Ideal usage:

const newDraad = new Draad('elements', {
    parentClass: 'container',
    smoothing: 0.5,
    lineWidth: 2,
    dasharray: '5 5 3',
    wait: 300,
    responsive: true
});

Removing line

newDraad.destroy;

Options

OptionTypeDefaultExampleDescription
elementstring'class'Enables elements connecting
parentClassstring'class'If not passed body will be parent of the SVG line
offsetXnumberhalf of an element width20Enables more precise line positioning
offsetYnumberhalf of an element height32Enables more precise line positioning
fillstring'#345adf'It will create contour
colorstring'#000''#17f2a8'Defines line color
lineWidthnumber112Defines line width in px
lineOpacitynumber10.6Defines line visibility
dasharraystring'5 4 5'Transforms solid line to dashed
capstring'round'It represents CSS property stroke-linecap
responsivebooleanfalsetrueEnables responsive line
waitnumber01000It will wait with creating a line by defined milliseconds
smoothingnumber0.23.3It smoothes line curves and if it's 0 passed the line will be straight with sharp edges
absoluteUnitsbooleanfalsetrueCoordinates can be absolute if parent without position: relative; is added

Useful to know

  • connected elements needs to have same parent
  • connected elements don't needs to be in the same container
  • elements positioning is irrelevant
  • additional SVG styling and animating is possible because the line is just another element in DOM

License

This project is licensed under the MIT License - see the LICENSE.md file for details.