0.7.1 • Published 6 years ago

skewjs v0.7.1

Weekly downloads
4
License
ISC
Repository
github
Last release
6 years ago

Skew is a dependency free JavaScript library for performing skew transformations of DOM elements measured in pixels. It allows to keep element's skew by the same amount of pixels and unskew its content.

GitHub release npm GitHub Github file size

Features:

  • calculation of skew transformation measured in pixels,
  • unskew element's content,
  • skew update on window resize,
  • dependency free,
  • can be used standalone with plain JavaScript or as jQuery plugin,
  • responsiveness - breakpoints definition,
  • configurable debouncing,
  • cross-browser - supports IE9+ and modern browsers,
  • lightweight - ~5kB minified.

NPM

npm install skewjs

CDN

https://www.jsdelivr.com/package/npm/skewjs

Getting started

Before closing <body> tag add:

<script type="text/javascript" src="skew.min.js"></script>
<!--CDN-->
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/skewjs@0.7.1/skew.min.js"></script>

Then add script:

window.onload = function() {
  var Skew = new Skew('selector', {x: 50});
}

or use jQuery:

$(function() {
  $('selector').skew({x: 50});
});

Syntax

JavaScript:

var skewObj = new Skew('selector', {option: value});
//example
var skewObj = new Skew('.skew', {x: 50, y: 100, breakpoints: [{break: 768, x: 30}]});

skewObject.method(argument);
//example
skewObj.update({x: 30, breakpoints: [{break: 768, x: 15}]});

jQuery:

$('selector').skew({option: value});
//example
$('.skew').skew({x: 50, y: 100, breakpoints: [{break: 768, x: 30}]});

$('selector').skew('method', argument);
//example
$('.skew').skew('update', {x: 30, breakpoints: [{break: 768, x: 15}]});

Options

OptionTypeDefaultDescription
xint0Element's skew on x axis in pixels.
yint0Element's skew on y axis in pixels.
unskewContentbool/stringfalseElement's content unskew option / css selector of element's content to unskew (see example)
breakpointsarray[]Array of objects containing breakpoints and setting objects (see example).
debouncebooleantrueDebounce on resize event.
debounceTimeint50Debounce time tollerance in ms.
beforeSkewarray/function[]function/array of functions fired before skew (see events).
afterSkewarray/function[]function/array of functions fired after skew (see events).
beforeElementSkewarray/function[]function/array of functions fired before single element's skew (see events).
afterElementSkewarray/function[]function/array of functions fired after single element's skew (see events).

Unskew option example

//Unskew element's content
var skewObj = new Skew(
  '.skew',
  {
    x: 30,
    unskewContent: true
  }
);

//Unskew element's content matching css selector
var skewObj = new Skew(
  '.skew',
  {
    x: 30,
    unskewContent: '.skew-content'
  }
);

//Don't unskew element's content (default)
var skewObj = new Skew(
  '.skew',
  {
    x: 30,
    unskewContent: false
  }
);

Breakpoints option example

var skewObj = new Skew(
  '.skew',
  {
    x: 30,
    y: 60,
    breakpoints: [
      {
        break: 1024
        x: 60,
        y: 30,
        unskewContent: true,
        debounce: false,
        debounceTime: 30
      },
      {
        break: 768,
        x: 30,
        unskewContent: '.skew-content'
      },
      {
        break: 480,
        y: 60
      }
    ]
  }
);

Methods

MethodArgumentsDescription
skewRecalculates skew
updateoptions : objectUpdate Skew options
destroyDestroys Skew
beforeSkewlistener : functionAdd listener to beforeSkew event (see events)
afterSkewlistener : functionAdd listener to afterSkew event (see events)
beforeElementSkewlistener : functionAdd listener to beforeElementSkew event (see events)
afterElementSkewlistener : functionAdd listener to afterElementSkew event (see events)

Events

Events has been added with version 0.7.

EventParamsDescription
beforeSkewskewObj, targetsBefore start of skewing elements.
afterSkewskewObj, targetsAfter skewing all elements.
beforeElementSkewskewObj, targetBefore skew of every element.
afterElementSkewskewObj, targetAfter skew of every element.