[
  {
    "path": ".gitignore",
    "content": ".DS_Store\n\nrellax-build.js\n\n\nnpm-debug.log\ndebug.log\n\n# Latest bootstrap version\nbootstrap.min_v4.css\n\n# demo file with new bootstrap file\ndemo1.html"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Dixon & Moe\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# RELLAX\n\n[![NPM Package](https://img.shields.io/npm/v/rellax.svg)](https://www.npmjs.org/package/rellax)\n[![Minified Size](https://img.shields.io/bundlephobia/min/rellax.svg?label=minified)](https://bundlephobia.com/result?p=rellax)\n[![Gzipped Size](https://img.shields.io/bundlephobia/minzip/rellax.svg?label=gzipped)](https://bundlephobia.com/result?p=rellax)\n\nRellax is a buttery smooth, super lightweight, vanilla javascript parallax library. **Update:** Rellax now works on mobile (v1.0.0).\n\n* [Demo Website](https://dixonandmoe.com/rellax/)\n\n\n## Getting Started\n### Using npm\n\n`npm install rellax --save`\n\n### Using yarn\n\n`yarn add rellax`\n\n### CDN\n\n`<script src=\"https://cdn.jsdelivr.net/gh/dixonandmoe/rellax@master/rellax.min.js\"></script>`\n\n### Download Locally\n\nif you're old school like us download and insert `rellax.min.js` in your html\n\n\n```html\n<div class=\"rellax\">\n  I’m that default chill speed of \"-2\"\n</div>\n<div class=\"rellax\" data-rellax-speed=\"7\">\n  I’m super fast!!\n</div>\n<div class=\"rellax\" data-rellax-speed=\"-4\">\n  I’m extra slow and smooth\n</div>\n\n<script src=\"https://cdn.jsdelivr.net/gh/dixonandmoe/rellax@master/rellax.min.js\"></script>\n<script>\n  // Accepts any class name\n  var rellax = new Rellax('.rellax');\n</script>\n```\n```html\n<script>\n  // Also can pass in optional settings block\n  var rellax = new Rellax('.rellax', {\n    speed: -2,\n    center: false,\n    wrapper: null,\n    round: true,\n    vertical: true,\n    horizontal: false\n  });\n</script>\n```\n## Features\n\n### Speed\nUse the `data-rellax-speed` attribute to set the speed of a `.rellax` element to something other than the default value (which is `-2`). A negative value will make it move slower than regular scrolling, and a positive value will make it move faster. We recommend keeping the speed between `-10` and `10`.\n\n#### Responsive Speed\nUse responsive speed attributes for breakpoint levels that require a different speed. Defaults to the `data-rellax-speed` setting in unspecified breakpoints.\n```html\n<div class=\"rellax\" data-rellax-speed=\"7\" data-rellax-xs-speed=\"-5\" data-rellax-mobile-speed=\"3\" data-rellax-tablet-speed=\"-8\" data-rellax-desktop-speed=\"1\">\n  I parallax at all different speeds depending on your screen width.\n</div>\n```\n\nPass an array of breakpoints. Each breakpoint value represents the resolution for mobile, tablet, desktop respectively. Checkout the responsiveness of the [`demo`](https://dixonandmoe.com/rellax/)\n```html\n<script>\n  // This is the default setting\n  var rellax = new Rellax('.rellax', {\n    breakpoints: [576, 768, 1201]\n  });\n</script>\n```\n\n\n### Centering\nAfter some fantastic work from [@p-realinho](https://github.com/p-realinho), we just released the ability to center parallax elements in your viewport! We'll be building a nice demo website, but for now check out the tests folder for several examples of how it works.\n\nThere's two ways to implement centering, either on specific elements or as a global option.\n1. #### Element-wise Centering\n- Add the ```data-rellax-percentage=\"0.5\"``` to a specific html element\n```html\n<div class=\"rellax\" data-rellax-percentage=\"0.5\">\n  I’m that default chill speed of \"-2\" and \"centered\"\n</div>\n<div class=\"rellax\" data-rellax-speed=\"7\" data-rellax-percentage=\"0.5\">\n  I’m super fast!! And super centered!!\n</div>\n<div class=\"rellax\" data-rellax-speed=\"-4\" data-rellax-percentage=\"0.5\">\n  I’m extra slow and smooth, and hella centered.\n</div>\n```\n2. #### Global Centering\n- To activate the center feature in your whole html, add the code your `<script>` tag or JS file:\n```html\n<script>\n  // Center all the things!\n  var rellax = new Rellax('.rellax', {\n    center: true\n  });\n</script>\n```\n\n### Z-index\nIf you want to sort your elements properly in the Z space, you can use the data-rellax-zindex property\n```html\n<div class=\"rellax\">\n  I’m that default chill speed of \"-2\" and default z-index of 0\n</div>\n<div class=\"rellax\" data-rellax-speed=\"7\" data-rellax-zindex=\"5\">\n  I’m super fast!! And on top of the previous element, I'm z-index 5!!\n</div>\n```\n\n### Horizontal Parallax\nHorizontal parallax is disabled by default. You can enable it by passing `horizontal: true` in the settings block.\nThis feature is intended for panoramic style websites, where users scroll horizontally instead of vertically.\nNote that this can work together at the same time with the default vertical parallax. If you do not want this, pass `vertical: false` in the settings block.\n```html\n<script>\n  // Adding horizantal parallax scrolling\n  var rellax = new Rellax('.rellax', {\n    // Activate horizantal scrolling\n    // Turned off by default\n    horizontal: true\n    //Deactivate vertical scrolling\n    vertical: false\n  });\n</script>\n```\n\n### Custom Wrapper\nBy default, the position of parallax elements is determined via the scroll position of the body. Passing in the `wrapper` property will tell Rellax to watch that element instead.\n```html\n<script>\n  // Set wrapper to .custom-element instead of the body\n  var rellax = new Rellax('.rellax', {\n    wrapper: '.custom-element'\n  });\n</script>\n```\n\n### Refresh\n```html\n<script>\n  // Start Rellax\n  var rellax = new Rellax('.rellax');\n\n  // Destroy and create again parallax with previous settings\n  rellax.refresh();\n</script>\n```\n\n### Destroy\n```html\n<script>\n  // Start Rellax\n  var rellax = new Rellax('.rellax');\n\n  // End Rellax and reset parallax elements to their original positions\n  rellax.destroy();\n</script>\n```\n\n### Callback\n```html\n<script>\n  // Start Rellax\n  var rellax = new Rellax('.rellax-blur-card', {\n    callback: function(positions) {\n      // callback every position change\n      console.log(positions);\n    }\n  });\n</script>\n```\n\n### Target node\nInstead of using a className you can use a node, handy when using React and you want to use `refs` instead of `className`.\n```jsx\n<div ref={ref => { this.rellaxRef = ref }}>\n  I’m that default chill speed of \"-2\"\n</div>\n\nvar rellax = new Rellax(this.rellaxRef)\n```\n\n## In the Wild\nIf you're using Rellax in production, we'd love to list you here! Let us know: moe@dixonandmoe.com\n- [Bowmore Scotch](https://www.bowmore.com/)\n- [Generated Photos](https://generated.photos/)\n- [How Much Does a Website Cost](https://designagency.io/)\n- [Linux Man Pages](https://dashdash.io/)\n- [Laws of UX](https://lawsofux.com/)\n- [Finch](https://finch.io/)\n- [Embedded Payroll](https://robotist.com/embedded-payroll-api)\n- [Product Designer in San Francisco](https://moeamaya.com/)\n- [EthWorks](http://ethworks.io/)\n- [Lorem Ipsum Generator](https://loremipsumgenerator.com/)\n- [Deeson](https://www.deeson.co.uk/)\n\n## Development\nIn the spirit of lightweight javascript, the build processes (thus far) is lightweight also.\n\n1. Open demo.html\n2. Make code changes and refresh browser\n3. Once feature is finished or bug fixed, use [jshint](http://jshint.com/) to lint code\n4. Fix lint issues then use [Google Closure Compiler](https://closure-compiler.appspot.com/home) to minify\n5. 🍻\n\n## Changelog\n- 1.7.1: Remove animation on destory [PR](https://github.com/dixonandmoe/rellax/pull/132)\n- 1.7.0: Scroll position set relative to the wrapper [PR](https://github.com/dixonandmoe/rellax/pull/125)\n"
  },
  {
    "path": "absolute.html",
    "content": "<section>\n  <div class=\"absolute above\" style=\"pointer-events: none;\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-md-offset-5 col-md-1\">\n          <div\n            class=\"md-twitter rellax\"\n            data-rellax-speed=\"1\"\n            data-rellax-xs-speed=\"2\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-1 col-md-2\">\n          <div\n            class=\"bt-green rellax\"\n            data-rellax-speed=\"5\"\n            data-rellax-xs-speed=\"3\"\n            data-rellax-mobile-speed=\"4\"\n            data-rellax-tablet-speed=\"5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-0 col-md-1\">\n          <div\n            class=\"md-dixonandmoe rellax\"\n            data-rellax-speed=\"2\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"1\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-1\">\n          <div\n            class=\"md-facebook rellax\"\n            data-rellax-speed=\"3\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"3\"\n            data-rellax-percentage=\"0.5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n\n<section>\n  <div class=\"absolute above\" style=\"pointer-events: none;\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-md-offset-5 col-md-1\">\n          <div\n            class=\"md-twitter rellax\"\n            data-rellax-speed=\"1\"\n            data-rellax-xs-speed=\"2\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-1 col-md-2\">\n          <div\n            class=\"bt-green rellax\"\n            data-rellax-speed=\"5\"\n            data-rellax-xs-speed=\"3\"\n            data-rellax-mobile-speed=\"4\"\n            data-rellax-tablet-speed=\"5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-0 col-md-1\">\n          <div\n            class=\"md-dixonandmoe rellax\"\n            data-rellax-speed=\"2\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"1\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-1\">\n          <div\n            class=\"md-facebook rellax\"\n            data-rellax-speed=\"3\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"3\"\n            data-rellax-percentage=\"0.5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n\n<section class=\"section\">\n  <div class=\"absolute above\" style=\"pointer-events: none;\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-md-offset-1 col-md-2\">\n          <div\n            class=\"bt-green rellax\"\n            data-rellax-speed=\"5\"\n            data-rellax-xs-speed=\"3\"\n            data-rellax-mobile-speed=\"4\"\n            data-rellax-tablet-speed=\"5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-0 col-md-1\">\n          <div\n            class=\"md-dixonandmoe rellax\"\n            data-rellax-speed=\"2\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"1\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-offset-5 col-md-1\">\n          <div\n            class=\"md-twitter rellax\"\n            data-rellax-speed=\"1\"\n            data-rellax-xs-speed=\"2\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"2\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n\n        <div class=\"col-md-1\">\n          <div\n            class=\"md-facebook rellax\"\n            data-rellax-speed=\"3\"\n            data-rellax-xs-speed=\"1\"\n            data-rellax-mobile-speed=\"2\"\n            data-rellax-tablet-speed=\"3\"\n            data-rellax-percentage=\"0.5\"\n            style=\"transform: rotate(45deg);\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"copy\" style=\"margin-top: 200px;margin-bottom: 500px\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-md-offset-1 col-md-6\">\n          <h4>SERIOUSLY, WHY?!</h4>\n          <p>\n            Come on, how boring is the internet without excessive javascript? We\n            made this library since too many github repos are abandoned (RIP\n            skrollr) or feature creepy. You got some beef or caught us slippin\n            on unit tests, send rants and 10mb gifs to\n            <a href=\"mailto:moe@dixonandmoe.\">moe@dixonandmoe.com</a>\n          </p>\n        </div>\n      </div>\n\n      <div class=\"row\" style=\"margin-top: 140px\">\n        <div class=\"col-md-offset-5 col-md-6\">\n          <h4>BUT ACTUALLY</h4>\n          <p>\n            We've benefitted so much from open source projects that we're\n            actively trying to give back. As designers, we're starting by\n            releasing our own quirky js code.\n          </p>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n"
  },
  {
    "path": "bower.json",
    "content": "{\n  \"name\": \"rellax\",\n  \"main\": \"rellax.js\",\n  \"version\": \"1.2.0\",\n  \"homepage\": \"https://dixonandmoe.com/rellax/\",\n  \"authors\": [\n    \"moeamaya <moeamaya@gmail.com>\"\n  ],\n  \"description\": \"vanilla javascript parallax\",\n  \"moduleType\": [],\n  \"keywords\": [\n    \"parallax\"\n  ],\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\"\n  ]\n}\n"
  },
  {
    "path": "css/main.css",
    "content": "html,\nbody {\n  margin: 0;\n  padding: 0;\n  font-family: \"Source Sans Pro\", sans-serif;\n  text-rendering: optimizeLegibility;\n  color: #222;\n  /* overflow-x: hidden; */\n}\nh4 {\n  font-size: 22px;\n  margin-bottom: 28px;\n}\np {\n  font-size: 22px;\n}\na,\na:active {\n  text-decoration: none;\n  color: #5000f1;\n}\n\nheader h2 {\n  font-size: 15px;\n  font-weight: 900;\n  letter-spacing: 0.15em;\n  margin-top: 70px;\n}\nheader a h2 {\n  color: #222;\n}\nheader a h2 span {\n  transition: all 400ms cubic-bezier(0.68, -0.1, 0.265, 1.55);\n}\nheader a:hover h2 span {\n  color: #fff;\n  margin-left: 10px;\n}\nheader .white-block {\n  margin-top: 20px;\n  width: 46px;\n  height: 6px;\n  background: #fff;\n}\n\nheader .title {\n  margin-top: 80px;\n}\nheader h1 {\n  font-size: 96px;\n  font-weight: 900;\n  letter-spacing: 0.12em;\n  margin: 0;\n  margin-left: -6px;\n}\nheader h1 span {\n  display: inline-block;\n  font-size: 20px;\n  margin-top: 18px;\n  vertical-align: top;\n  letter-spacing: 0;\n}\nheader .title a {\n  display: inline-block;\n  margin-top: 6px;\n  margin-right: -70px;\n  background: #222;\n  padding: 26px 80px;\n  color: #fff;\n  border-radius: 12px;\n  font-size: 26px;\n  letter-spacing: 0.2em;\n  transition: all 300ms cubic-bezier(0.68, -0.1, 0.265, 1.55);\n}\nheader .title a:hover {\n  margin-top: 12px;\n  margin-right: -80px;\n  padding: 20px 90px;\n}\nheader h3 {\n  font-size: 21px;\n}\n\n/*----------------------------------\n  Background Grid\n------------------------------------*/\n\n.grid {\n  position: fixed;\n  width: 100%;\n}\n.grid-line {\n  height: 100vh;\n  border-left: 1px solid #ccc;\n}\n\n.fixed-top {\n  position: absolute;\n  width: 600px;\n  height: 600px;\n  background: #00f1c9;\n  border-radius: 12px;\n  z-index: -1;\n  margin-top: -220px;\n  margin-left: 100px;\n}\n\n/*----------------------------------\n  Main\n------------------------------------*/\n\n/* .main {\n  /* overflow: hidden; */\n\n.section {\n  position: relative;\n}\nsection.san-francisco {\n  margin-top: 100px;\n}\n\n.absolute {\n  position: absolute;\n  width: 100%;\n  height: auto;\n  margin-top: 100px;\n}\n.absolute.above {\n  z-index: 2;\n}\n.absolute h2 {\n  font-size: 140px;\n  font-weight: 900;\n  letter-spacing: -0.04em;\n  color: #f0f0f0;\n  z-index: -1;\n}\n.lg-green {\n  width: 160px;\n  height: 160px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -80px;\n  margin-top: 200px;\n}\n.sm-green {\n  width: 60px;\n  height: 60px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -30px;\n  margin-top: 400px;\n}\n.sm-purple {\n  width: 60px;\n  height: 60px;\n  background: #5000f1;\n  border-radius: 12px;\n  margin-left: -30px;\n  margin-top: 400px;\n}\n.xs-green {\n  width: 60px;\n  height: 60px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -30px;\n  margin-top: 400px;\n}\n.md-green {\n  width: 120px;\n  height: 120px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -60px;\n  margin-top: 10px;\n}\n.lg-purple {\n  width: 80px;\n  height: 80px;\n  background: #5000f1;\n  border-radius: 12px;\n  margin-left: 57px;\n  margin-top: 60px;\n}\n\n.date {\n  margin-top: 400px;\n  font-size: 48px;\n  font-weight: 600;\n  color: #5000f1;\n}\n.temp {\n  margin-top: 200px;\n  font-size: 280px;\n  font-weight: 900;\n  letter-spacing: -0.07em;\n  color: #5000f1;\n}\n\n.text-editor {\n  background: #222;\n  padding: 60px 50px;\n  border-radius: 12px;\n}\ncode {\n  text-align: left;\n  padding: 0;\n  font-size: 22px;\n  background: none;\n  border-radius: 0;\n  color: #00f1c9;\n}\n\n.md-facebook {\n  width: 60px;\n  height: 60px;\n  background: #5000f1;\n  border-radius: 12px;\n  margin-left: 68px;\n  margin-top: 600px;\n}\n.md-twitter {\n  width: 120px;\n  height: 120px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -60px;\n  margin-top: 60px;\n}\n.md-dixonandmoe {\n  width: 120px;\n  height: 120px;\n  background: #5000f1;\n  border-radius: 12px;\n  margin-left: -60px;\n  margin-top: 760px;\n}\n.bt-green {\n  width: 60px;\n  height: 60px;\n  background: #00f1c9;\n  border-radius: 12px;\n  margin-left: -30px;\n  margin-top: 700px;\n}\n.bt-purple {\n  width: 80px;\n  height: 80px;\n  background: #5000f1;\n  border-radius: 12px;\n  margin-left: 57px;\n  margin-top: 600px;\n}\n\n.share {\n  position: relative;\n  top: 200px;\n}\n.share a {\n  font-size: 34px;\n}\n.share a span {\n  transition: all 400ms cubic-bezier(0.68, -0.1, 0.265, 1.55);\n}\n.share a:hover span {\n  margin-left: 10px;\n}\n\na.dam,\na.dam:hover,\na.dam:active,\na.dam:visited {\n  color: #222;\n}\n\nspan.comment {\n  color: rgba(255, 255, 255, 0.4);\n}\nspan.purple {\n  color: #5000f1;\n}\nspan.green {\n  color: #a0f100;\n}\nspan.white {\n  color: #fff;\n}\nspan.orange {\n  color: orange;\n}\n\n/* -------------------------------------------------------------------------- */\n/* =====================options-menu and documentation======================= */\n/* -------------------------------------------------------------------------- */\nh2.heading {\n  font-size: 50px;\n}\nh3.heading {\n  font-size: 27px;\n  font-weight: bolder;\n}\n\n.documentation {\n  margin-top: 8rem;\n}\n.options {\n  border-radius: 12px;\n  border: 1px solid #ccc;\n  background-color: white;\n  width: 90%;\n  padding: 2.5rem;\n  margin-top: 4rem;\n  height: auto;\n}\n.options a {\n  display: block;\n}\n.options-text {\n  font-size: medium;\n  text-transform: uppercase;\n  letter-spacing: 0.1rem;\n  margin: 1rem 0;\n}\n.options-text--margin {\n  margin-top: 3rem;\n}\n.options-title {\n  font-size: 24px;\n  padding: 1rem 0;\n  color: #222;\n}\n.sticky {\n  position: sticky;\n  top: 0;\n  z-index: 4;\n}\n/* Style the active class (and buttons on mouse-over) */\n.active {\n  color: #5000f1;\n}\n.option:hover {\n  color: #00f1c9;\n}\nhtml {\n  scroll-behavior: smooth;\n}\n\n@keyframes fuzz /* Safari and Chrome */ {\n  0% {\n    opacity: 0;\n  }\n  40% {\n    opacity: 0;\n  }\n  100% {\n    /*-webkit-transform: scaleY(1);*/\n    opacity: 1;\n  }\n}\n\n@keyframes fuzz2 /* Safari and Chrome */ {\n  0% {\n    opacity: 0;\n  }\n  48% {\n    opacity: 0;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@keyframes fuzz3 /* Safari and Chrome */ {\n  0% {\n    opacity: 0;\n  }\n  54% {\n    opacity: 0;\n  }\n  100% {\n    opacity: 1;\n  }\n}\n\n@keyframes stretch /* Safari and Chrome */ {\n  0% {\n    -webkit-transform: scaleX(0);\n    opacity: 0;\n  }\n  50% {\n    -webkit-transform: scaleX(0);\n    opacity: 1;\n  }\n  60% {\n    -webkit-transform: scaleX(0);\n  }\n  100% {\n    -webkit-transform: scaleX(1);\n  }\n}\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translate3d(0, 20px, 0);\n  }\n  30% {\n    opacity: 0;\n  }\n\n  100% {\n    opacity: 1;\n  }\n}\n\n/*----------------------------------\n  Medium devices: iPad vertical\n------------------------------------*/\n\n@media (max-width: 991px) {\n}\n\n/*----------------------------------\n  Small devices: iPhone 6+ and below\n------------------------------------*/\n\n@media (max-width: 767px) {\n  .sticky {\n    display: none;\n  }\n}\n\n/*----------------------------------\n  iPhone 6 & 6+ specific text bump\n------------------------------------*/\n\n@media (max-width: 991px) and (max-height: 736px) and (min-height: 481px) {\n  .sticky {\n    display: none;\n  }\n  p {\n    text-align: justify;\n  }\n}\n"
  },
  {
    "path": "demo.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n  <title>Vanilla Javascript Parallax Library - Rellax.js</title>\n  <meta name=\"description\" content=\"\">\n  <meta name=\"viewport\" content=\"width=device-width\">\n\n  <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:600,700,900' rel='stylesheet' type='text/css'>\n\n  <!-- Booooooootstrap -->\n  <link rel=\"stylesheet\" href=\"css/bootstrap.min.css\">\n\n\n  <!-- Styles -->\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"css/main.css\">\n\n  <!--[if lt IE 9]>\n    <script src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n    <script>window.html5 || document.write('<script src=\"js/vendor/html5shiv.js\"><\\/script>')</script>\n    <![endif]-->\n</head>\n\n<body>\n  <div class=\"grid\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-md-offset-1 col-md-2\">\n          <div class=\"grid-line\"></div>\n        </div>\n        <div class=\"col-md-2\">\n          <div class=\"grid-line\"></div>\n        </div>\n        <div class=\"col-md-2\">\n          <div class=\"grid-line\"></div>\n        </div>\n        <div class=\"col-md-2\">\n          <div class=\"grid-line\"></div>\n        </div>\n        <div class=\"col-md-2\">\n          <div class=\"grid-line\" style=\"margin-right:-30px;border-right:1px solid #ccc\"></div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"fixed-top rellax\" data-rellax-speed=\"-2\" data-rellax-xs-speed=\"-5\" data-rellax-mobile-speed=\"3\"\n    data-rellax-tablet-speed=\"-8\" style=\"transform: rotate(45deg);\">\n  </div>\n\n  <main class=\"main\">\n    <header>\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-md-offset-1 col-md-11\">\n            <a href=\"http://dixonandmoe.com/\">\n              <h2>BY DIXON & MOE <span>➔</span></h2>\n            </a>\n            <div class=\"white-block\"></div>\n          </div>\n        </div>\n        <div class=\"title\">\n          <div class=\"row\">\n            <div class=\"col-md-offset-1 col-md-6\">\n              <h1>RELLAX<span>JS</span></h1>\n            </div>\n            <div class=\"col-md-4 text-right\">\n              <a href=\"https://github.com/dixonandmoe/rellax\">GITHUB</a>\n            </div>\n          </div>\n        </div>\n        <div class=\"subtitle\">\n          <div class=\"row\">\n            <div class=\"col-md-offset-1 col-md-2\">\n              <h3>Light (871b gz)</h3>\n            </div>\n            <div class=\"col-md-2\">\n              <h3>Vanilla Javascript</h3>\n            </div>\n            <div class=\"col-md-2\">\n              <h3>Parallax Library</h3>\n            </div>\n          </div>\n        </div>\n      </div>\n    </header>\n\n\n    <section class=\"section san-francisco\">\n      <div class=\"absolute\">\n        <div class=\"container\">\n          <div class=\"row\">\n            <div class=\"col-md-offset-1 col-md-11\">\n              <h2 class=\"rellax\" data-rellax-speed=\"-3\" data-rellax-xs-speed=\"-5\" data-rellax-mobile-speed=\"4\"\n                data-rellax-tablet-speed=\"-3\">\n                San Francisco<br>California\n              </h2>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"absolute above\">\n        <div class=\"container\">\n          <div class=\"row\">\n\n            <div class=\"col-md-offset-1 col-md-2\">\n              <div class=\"lg-green rellax\" data-rellax-speed=\"2\" data-rellax-xs-speed=\"1\" data-rellax-mobile-speed=\"2\"\n                data-rellax-tablet-speed=\"2\" style=\"transform: rotate(45deg);\">\n              </div>\n              <div class=\"sm-green rellax\" data-rellax-speed=\"5\" data-rellax-xs-speed=\"3\" data-rellax-mobile-speed=\"4\"\n                data-rellax-tablet-speed=\"5\" style=\"transform: rotate(45deg);\">\n              </div>\n            </div>\n\n            <div class=\"col-md-offset-2 col-md-1\">\n              <div class=\"sm-purple rellax\" data-rellax-speed=\"2\" data-rellax-xs-speed=\"1\" data-rellax-mobile-speed=\"2\"\n                data-rellax-tablet-speed=\"2\" style=\"transform: rotate(45deg);\">\n              </div>\n            </div>\n\n            <div class=\"col-md-offset-3 col-md-1\">\n              <div class=\"xs-green rellax\" data-rellax-speed=\"5\" data-rellax-xs-speed=\"3\" data-rellax-mobile-speed=\"4\"\n                data-rellax-tablet-speed=\"5\" style=\"transform: rotate(45deg);\">\n              </div>\n              <div class=\"md-green rellax\" data-rellax-speed=\"1\" data-rellax-xs-speed=\"1\" data-rellax-mobile-speed=\"2\"\n                data-rellax-tablet-speed=\"2\" style=\"transform: rotate(45deg);\">\n              </div>\n            </div>\n\n            <div class=\"col-md-1\">\n              <div class=\"lg-purple rellax\" data-rellax-speed=\"3\" data-rellax-xs-speed=\"2\" data-rellax-mobile-speed=\"2\"\n                data-rellax-tablet-speed=\"3\" style=\"transform: rotate(45deg);\">\n              </div>\n            </div>\n\n          </div>\n        </div>\n      </div>\n\n\n      <div class=\"container\">\n\n        <div class=\"row\">\n          <div class=\"col-md-offset-1 col-md-5\">\n            <div class=\"date\">\n              Incorporated—<br>\n              1850<br><br>\n              37°47′N 122°25′W\n            </div>\n          </div>\n          <div class=\"col-md-offset-1 col-md-4\">\n            <div class=\"temp\">\n              68°\n            </div>\n          </div>\n        </div>\n      </div>\n\n\n    </section>\n\n    <section class=\"documentation\">\n      <div class=\"container\">\n        <section class=\"row\">\n          <div class=\"col-md-4 sticky\">\n            <div class=\"options\" id=\"optnCard\">\n\n              <p class=\"options-text disabled\">Options</p>\n              <a href=\"#GettingStarted\" class=\"option options-title active\">Getting Started!</a>\n              <a class=\"option options-title\" href=\"#Speed\">Speed</a>\n              <a class=\"option options-title\" href=\"#Centering\">Centering</a>\n              <a class=\"option options-title\" href=\"#ZIndex\">Z-Index</a>\n              <a class=\"option options-title\" href=\"#HorParlx\">Horizontal Scrolling</a>\n              <!-- <span>➔</span> -->\n              <a class=\"option options-title\" href=\"#CustomWrapper\">Custom Wrapper</a>\n              <a class=\"option options-title\" href=\"#TargetNode\">Target Node</a>\n              <p class=\"options-text options-text--margin\">Methods</p>\n              <a class=\"option options-title\" href=\"#Refresh\">Refresh</a>\n              <a class=\"option options-title\" href=\"#Destroy\">Destroy</a>\n\n            </div>\n          </div>\n\n          <div class=\"col-md-8\">\n            <!-- Getting Started -->\n            <section class=\"section\" id=\"GettingStarted\">\n              <div style=\"margin-top: 6rem\">\n\n                <div>\n                  <!-- sect1 -->\n                  <h2 class=\"heading\">Getting Started!</h2>\n                  <div class=\"text-editor\">\n                    <code>\n                        <span class=\"orange\">npm install rellax --save</span>\n                      </code>\n                  </div>\n                  <p style=\"font-weight: lighter;\">\n                    or if you're old school like us, download and insert\n                    <kbd><script src=\"https://cdn.jsdelivr.net/gh/dixonandmoe/rellax@master/rellax.min.js\"></script></kbd> file in your project folder.\n                  </p>\n                </div>\n\n                <div>\n                  <!-- sect2 -->\n                  <h3 class=\"heading\">JavaScript (`accepts any class name`)</h3>\n                  <div class=\"text-editor\">\n                    <code>\n                        <span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax');\n                      </code>\n                  </div>\n                </div>\n\n                <div>\n                  <!-- sect3 -->\n                  <h3 class=\"heading\">Basic Markup (Default Speed: -2)</h3>\n                  <div class=\"text-editor\">\n                    <code>\n                        &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\"&gt;<br>\n                        <span class=\"white\">&nbsp;&nbsp;I’m slow and smooth</span><br>\n                        &lt;/div&gt;\n                      </code>\n                  </div>\n                </div>\n\n\n                <div>\n                  <!-- sect4 -->\n                  <h3 class=\"heading\">Optional Speed (-10 to +10)</h3>\n                  <div class=\"text-editor\">\n                    <code>\n                        &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">-3</span>\"&gt;<br>\n                        <span class=\"white\">&nbsp;&nbsp;I’m slow and smooth</span><br>\n                        &lt;/div&gt;\n                        <br />\n                        <br>\n                        &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">7</span>\"&gt;<br>\n                        <span class=\"white\">&nbsp;&nbsp;I’m super fast!!</span><br>\n                        &lt;/div&gt;\n                        <br />\n                        <br>\n                        &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">-5</span>\"&gt;<br>\n                        <span class=\"white\">&nbsp;&nbsp;I’m extra slow and smooth</span><br>\n                        &lt;/div&gt;\n                        <br />\n                      </code>\n                  </div>\n\n                </div>\n\n\n              </div>\n            </section>\n\n            <!-- Speed -->\n            <section class=\"section\" id=\"Speed\">\n              <div style=\"margin-top: 6rem\">\n\n                <!-- sect1 -->\n                <h2 class=\"heading\">Speed</h2>\n                <p style=\"font-weight: lighter;\">\n                  Use the <kbd>data-rellax-speed</kbd> attribute to set the speed of a\n                  <kbd>.rellax</kbd> element to something other than the default value\n                  (which is <kbd>-2</kbd>). A negative value will make it move slower\n                  than regular scrolling, and a positive value will make it move faster.\n                  We recommend keeping the speed between <kbd>-10 and +10</kbd>.\n                </p>\n\n\n\n                <div>\n                  <!-- sect2 -->\n                  <h3 class=\"heading\">Responsive Speed</h3 style=\"margin-top: 4rem\">\n                  <p style=\"font-weight: lighter;\">\n                    Use responsive speed attributes for breakpoint levels that require a\n                    different speed. Defaults to the <kbd>data-rellax-speed</kbd> setting\n                    in unspecified breakpoints.\n                  </p>\n\n                  <div class=\"text-editor\">\n                    <code>\n                        &lt;div\n                          <br>&nbsp;&nbsp;<span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\"\n                          <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">7</span>\"\n                          <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-xs-speed</span>=\"<span class=\"green\">-5</span>\"\n                          <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-mobile-speed</span>=\"<span class=\"green\">3</span>\"\n                          <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-tablet-speed</span>=\"<span class=\"green\">-8</span>\"\n                          <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-desktop-speed</span>=\"<span class=\"green\">1</span>\"&gt;<br>\n                        <span class=\"white\">&nbsp;&nbsp;&nbsp;&nbsp;I parallax at all different speeds depending on your screen width.</span><br>\n                        &lt;/div&gt;\n                      </code>\n                  </div>\n\n                  <p style=\"font-weight: lighter;\">\n                    Pass an array of breakpoints. Each breakpoint value represents the\n                    resolution for mobile, tablet, desktop respectively. Checkout the\n                    responsiveness of the demo.\n                  </p>\n                  <div class=\"text-editor\">\n                    <code>\n                        &lt;script&gt;\n                          <br>&nbsp;&nbsp;<span class=\"comment\">//default JS Setting</span>\n                          <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax',\n                          <span class=\"white\">\n                            {<br>\n                              &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"green\">breakpoints:</span>[<span class=\"orange\">576, 768, 1201</span>]\n                            <br>&nbsp;&nbsp;}</span>);\n                          <br />\n                        &lt;/script&gt;\n                      </code>\n                  </div>\n\n                </div>\n\n\n              </div>\n            </section>\n\n            <!-- Centering -->\n            <section class=\"section\" id=\"Centering\">\n              <div style=\"margin-top: 6rem\">\n\n                <!-- sect1 -->\n                <h2 class=\"heading\">Centering</h2>\n                <p style=\"font-weight: lighter;\">\n                  After some fantastic work from <kbd><a style=\"color: orange;\"\n                      href=\"https://github.com/p-realinho\">@p-realinho</a></kbd>, we\n                  just released the ability to center parallax elements in your viewport!\n                  We'll be building a nice demo website, but for now check out the tests\n                  folder for several examples of how it works via our tests folder on\n                  <a href=\"https://github.com/dixonandmoe/rellax\">GitHub</a>.\n                </p>\n                <br>\n                <p style=\"font-weight: lighter;\">\n                  There's two ways to implement centering, either on specific elements or as a global option.\n                </p>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-percentage</span>=\"<span class=\"green\">0.5</span>\"&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m that default chill speed of \"-2\" and \"centered\"</span><br>\n                    &lt;/div&gt;\n                    <br />\n                    <br>\n                    &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">7</span>\"\n                    <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-percentage</span>=\"<span class=\"green\">0.5</span>\"&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m super fast!! And super centered!!</span><br>\n                    &lt;/div&gt;\n                    <br />\n                    <br>\n                    &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">-4</span>\"\n                    <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-percentage</span>=\"<span class=\"green\">0.5</span>\"&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m extra slow and smooth, and hella centered.</span><br>\n                    &lt;/div&gt;\n                    <br />\n                  </code>\n                </div>\n\n                <div>\n                  <!-- sect2 -->\n                  <div style=\"margin-top: 5rem;\">\n                    <div class=\"text-editor\">\n                      <code>\n                        &lt;script&gt;\n                        <br>&nbsp;&nbsp;<span class=\"comment\">//default JS Setting</span>\n                        <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax',\n                        <span class=\"white\">\n                          {<br>\n                        &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"green\">center:</span><span class=\"orange\">true</span>\n                        <br>&nbsp;&nbsp;}</span>);\n                        <br />\n                        &lt;/script&gt;\n                      </code>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </section>\n\n            <!-- Z-index -->\n            <section class=\"section\" id=\"ZIndex\">\n              <div style=\"margin-top: 6rem\">\n\n                <!-- sect1 -->\n                <h2 class=\"heading\">Z-Index</h2>\n                <p style=\"font-weight: lighter;\">\n                  If you want to sort your elements properly in the Z space,\n                  you can use the <br><kbd>data-rellax-zindex</kbd> property.\n                </p>\n                <br>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\"&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m that default chill speed of \"-2\" and default &nbsp;&nbsp;z-index of 0</span><br>\n                    &lt;/div&gt;\n                    <br />\n                    <br>\n                    &lt;div <span class=\"purple\">class</span>=\"<span class=\"green\">rellax</span>\" <span class=\"purple\">data-rellax-speed</span>=\"<span class=\"green\">7</span>\"\n                    <br>&nbsp;&nbsp;<span class=\"purple\">data-rellax-zindex</span>=\"<span class=\"green\">5</span>\"&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m super fast!! And on top of the previous &nbsp;&nbsp;element, I'm z-index 5!!</span><br>\n                    &lt;/div&gt;\n                    <br />\n                  </code>\n                </div>\n              </div>\n            </section>\n\n            <!-- Horizontal Parallax -->\n            <section class=\"section\" id=\"HorParlx\">\n              <div style=\"margin-top: 6rem\">\n                <!-- sect1 -->\n                <h2 class=\"heading\">Horizontal Parallax</h2>\n                <p style=\"font-weight: lighter;\">\n                  Horizontal parallax is disabled by default. You can enable it by passing\n                  <br><kbd><span class=\"orange\">horizontal: true</span></kbd> in the settings\n                  block. This feature is intended for panoramic style websites, where users\n                  scroll horizontally instead of vertically. Note that this can work together\n                  at the same time with the default vertical parallax. If you do not want this,\n                  pass <kbd><span class=\"orange\">vertical: false</span></kbd>.\n                </p>\n                <br>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;script&gt;\n                      <br>&nbsp;&nbsp;<span class=\"comment\">//Enable Horizontal Parallax Scrolling</span>\n                      <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax',\n                      <span class=\"white\">\n                        {<br>\n                          &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"green\">horizontal:</span><span class=\"orange\">true</span>\n                          </br ><br>&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"comment\">//Disable vertical Parallax Scrolling</span>\n                          &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"green\">vertical:</span><span class=\"orange\">false</span>\n                        <br>&nbsp;&nbsp;}</span>);\n                      <br />\n                    &lt;/script&gt;\n                  </code>\n                </div>\n\n              </div>\n            </section>\n\n            <!-- Custom Wrapper -->\n            <section class=\"section\" id=\"CustomWrapper\">\n              <div style=\"margin-top: 6rem\">\n\n                <!-- sect1 -->\n                <h2 class=\"heading\">Custom Wrapper</h2>\n                <p style=\"font-weight: lighter;\">\n                  By default, the position of parallax elements is determined via the scroll\n                  position of the body. Passing in the <kbd><span class=\"orange\">wrapper</span></kbd>\n                  property in the settings block will tell Rellax to watch that element instead.\n                </p>\n                <br>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;script&gt;\n                      <br>&nbsp;&nbsp;<span class=\"comment\">//Set wrapper to .custom-element instead of the body</span>\n                      <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax',\n                      <span class=\"white\">\n                        {<br>\n                          &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"green\">wrapper:</span><span class=\"orange\">'.custom-element'</span>\n                        <br>&nbsp;&nbsp;}</span>);\n                      <br />\n                    &lt;/script&gt;\n                  </code>\n                </div>\n              </div>\n            </section>\n\n            <!-- Target Node -->\n            <section class=\"section\" id=\"TargetNode\">\n              <div style=\"margin-top: 6rem\">\n                <!-- sect1 -->\n\n                <h2 class=\"heading\">Target Node</h2>\n                <p style=\"font-weight: lighter;\">\n                  Instead of using a className you can use a node, handy when using\n                  React and you want to use <kbd><span class=\"orange\">refs</span></kbd>\n                  instead of <kbd><span class=\"orange\">className</span></kbd>\n                </p>\n                <br>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;div <span class=\"purple\">ref</span> = {<span class=\"purple\">ref => </span>{ this<span class=\"green\">.rellaxRef </span> = <span class=\"purple\">ref</span>}}&gt;<br>\n                    <span class=\"white\">&nbsp;&nbsp;I’m that default chill speed of \"-2\"</span><br>\n                    &lt;/div&gt;\n                  </code>\n                  <br />\n                </div>\n\n                <div style=\"margin-top: 5rem;\">\n                  <div class=\"text-editor\">\n                    <code>\n                      &lt;script&gt;\n                      <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>(this<span class=\"orange\">.rellaxRef</span>);\n                      <br>\n                      &lt;/script&gt;\n                    </code>\n                  </div>\n                </div>\n              </div>\n            </section>\n\n            <!-- Refresh -->\n            <section class=\"section\" id=\"Refresh\">\n              <div style=\"margin-top: 6rem\">\n                <!-- sect1 -->\n\n                <h2 class=\"heading\">Refresh</h2>\n\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;script&gt;\n                      <br>&nbsp;&nbsp;<span class=\"comment\">// Start Rellax</span>\n                      <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax');\n                      <br />\n                      <br>&nbsp;&nbsp;<span class=\"comment\">// Destroy and create again parallax with previous settings</span>\n                        <br>&nbsp;&nbsp;rellax<span class=\"orange\">.refresh();</span>\n                        <br>\n                    &lt;/script&gt;\n                  </code>\n                </div>\n              </div>\n            </section>\n\n            <!-- Destroy -->\n            <section class=\"section\" id=\"Destroy\">\n              <div style=\"margin-top: 6rem\">\n                <!-- sect1 -->\n                <h2 class=\"heading\">Destroy</h2>\n                <div class=\"text-editor\">\n                  <code>\n                    &lt;script&gt;\n                      <br>&nbsp;&nbsp;<span class=\"comment\">// Start Rellax</span>\n                      <br>&nbsp;&nbsp;<span class=\"purple\">var</span> rellax = <span class=\"green\">new</span> <span class=\"white\">Rellax</span>('.rellax');\n                      <br />\n                      <br>&nbsp;&nbsp;<span class=\"comment\">// End Rellax and reset parallax elements to their original positions</span>\n                        <br>&nbsp;&nbsp;rellax<span class=\"orange\">.refresh();</span>\n                        <br>\n                    &lt;/script&gt;\n                  </code>\n                </div>\n              </div>\n            </section>\n\n          </div>\n        </section>\n      </div>\n    </section>\n\n    <section class=\"share\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-md-offset-1 col-md-3\">\n            <a class=\"dam\" href=\"http://dixonandmoe.com/\">Dixon &amp; Moe</a>\n          </div>\n          <div class=\"col-md-offset-3 col-md-2\">\n            <a href=\"https://www.facebook.com/sharer/sharer.php?u=http://dixonandmoe.com/rellax/\">Share\n              <span>➔</span></a>\n          </div>\n          <div class=\"col-md-offset-0 col-md-2\">\n            <a href=\"https://twitter.com/share?url=http://dixonandmoe.com/rellax/\">Tweet <span>➔</span></a>\n          </div>\n        </div>\n      </div>\n    </section>\n\n  </main>\n\n\n  <!-- javascript -->\n  <script type=\"text/javascript\" src=\"rellax.js\"></script>\n  <script type=\"text/javascript\" src=\"option.js\"></script>\n  <script>\n    var rellax = new Rellax('.rellax', {\n      // center: true\n      callback: function (position) {\n        // callback every position change\n        console.log(position);\n      },\n      breakpoints: [576, 768, 1024]\n    });\n  </script>\n\n\n\n</body>\n\n</html>"
  },
  {
    "path": "option.js",
    "content": "// ============================================================\n// To activate the active class on the links\n// ============================================================\n// Get the options menu element\nvar optnCard = document.getElementById(\"optnCard\");\n\n// Get all links with class=\"option\" inside the menu\nvar optns = optnCard.getElementsByClassName(\"option\");\n\n// Loop through the links and add the active class to the current/clicked link\nfor (var i = 0; i < optns.length; i++) {\n  optns[i].addEventListener(\"click\", function() {\n    var current = document.getElementsByClassName(\"active\");\n    current[0].className = current[0].className.replace(\" active\", \"\");\n    this.className += \" active\";\n  });\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"rellax\",\n  \"version\": \"1.12.1\",\n  \"description\": \"Lightweight, vanilla javascript parallax library\",\n  \"main\": \"rellax.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/dixonandmoe/rellax.git\"\n  },\n  \"keywords\": [\n    \"parallax\"\n  ],\n  \"author\": \"Moe Amaya <moe@dixonandmoe.com> (https://dixonandmoe.com)\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/dixonandmoe/rellax/issues\"\n  },\n  \"homepage\": \"https://dixonandmoe.com/rellax/\"\n}\n"
  },
  {
    "path": "rellax.js",
    "content": "\n// ------------------------------------------\n// Rellax.js\n// Buttery smooth parallax library\n// Copyright (c) 2016 Moe Amaya (@moeamaya)\n// MIT license\n//\n// Thanks to Paraxify.js and Jaime Cabllero\n// for parallax concepts\n// ------------------------------------------\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define([], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory();\n  } else {\n    // Browser globals (root is window)\n    root.Rellax = factory();\n  }\n}(typeof window !== \"undefined\" ? window : global, function () {\n  var Rellax = function(el, options){\n    \"use strict\";\n\n    var self = Object.create(Rellax.prototype);\n\n    var posY = 0;\n    var screenY = 0;\n    var posX = 0;\n    var screenX = 0;\n    var blocks = [];\n    var pause = true;\n\n    // check what requestAnimationFrame to use, and if\n    // it's not supported, use the onscroll event\n    var loop = window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.msRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      function(callback){ return setTimeout(callback, 1000 / 60); };\n\n    // store the id for later use\n    var loopId = null;\n\n    // Test via a getter in the options object to see if the passive property is accessed\n    var supportsPassive = false;\n    try {\n      var opts = Object.defineProperty({}, 'passive', {\n        get: function() {\n          supportsPassive = true;\n        }\n      });\n      window.addEventListener(\"testPassive\", null, opts);\n      window.removeEventListener(\"testPassive\", null, opts);\n    } catch (e) {}\n\n    // check what cancelAnimation method to use\n    var clearLoop = window.cancelAnimationFrame || window.mozCancelAnimationFrame || clearTimeout;\n\n    // check which transform property to use\n    var transformProp = window.transformProp || (function(){\n        var testEl = document.createElement('div');\n        if (testEl.style.transform === null) {\n          var vendors = ['Webkit', 'Moz', 'ms'];\n          for (var vendor in vendors) {\n            if (testEl.style[ vendors[vendor] + 'Transform' ] !== undefined) {\n              return vendors[vendor] + 'Transform';\n            }\n          }\n        }\n        return 'transform';\n      })();\n\n    // Default Settings\n    self.options = {\n      speed: -2,\n\t    verticalSpeed: null,\n\t    horizontalSpeed: null,\n      breakpoints: [576, 768, 1201],\n      center: false,\n      wrapper: null,\n      relativeToWrapper: false,\n      round: true,\n      vertical: true,\n      horizontal: false,\n      verticalScrollAxis: \"y\",\n      horizontalScrollAxis: \"x\",\n      callback: function() {},\n    };\n\n    // User defined options (might have more in the future)\n    if (options){\n      Object.keys(options).forEach(function(key){\n        self.options[key] = options[key];\n      });\n    }\n\n    function validateCustomBreakpoints () {\n      if (self.options.breakpoints.length === 3 && Array.isArray(self.options.breakpoints)) {\n        var isAscending = true;\n        var isNumerical = true;\n        var lastVal;\n        self.options.breakpoints.forEach(function (i) {\n          if (typeof i !== 'number') isNumerical = false;\n          if (lastVal !== null) {\n            if (i < lastVal) isAscending = false;\n          }\n          lastVal = i;\n        });\n        if (isAscending && isNumerical) return;\n      }\n      // revert defaults if set incorrectly\n      self.options.breakpoints = [576, 768, 1201];\n      console.warn(\"Rellax: You must pass an array of 3 numbers in ascending order to the breakpoints option. Defaults reverted\");\n    }\n\n    if (options && options.breakpoints) {\n      validateCustomBreakpoints();\n    }\n\n    // By default, rellax class\n    if (!el) {\n      el = '.rellax';\n    }\n\n    // check if el is a className or a node\n    var elements = typeof el === 'string' ? document.querySelectorAll(el) : [el];\n\n    // Now query selector\n    if (elements.length > 0) {\n      self.elems = elements;\n    }\n\n    // The elements don't exist\n    else {\n      console.warn(\"Rellax: The elements you're trying to select don't exist.\");\n      return;\n    }\n\n    // Has a wrapper and it exists\n    if (self.options.wrapper) {\n      if (!self.options.wrapper.nodeType) {\n        var wrapper = document.querySelector(self.options.wrapper);\n\n        if (wrapper) {\n          self.options.wrapper = wrapper;\n        } else {\n          console.warn(\"Rellax: The wrapper you're trying to use doesn't exist.\");\n          return;\n        }\n      }\n    }\n\n    // set a placeholder for the current breakpoint\n    var currentBreakpoint;\n\n    // helper to determine current breakpoint\n    var getCurrentBreakpoint = function (w) {\n      var bp = self.options.breakpoints;\n      if (w < bp[0]) return 'xs';\n      if (w >= bp[0] && w < bp[1]) return 'sm';\n      if (w >= bp[1] && w < bp[2]) return 'md';\n      return 'lg';\n    };\n\n    // Get and cache initial position of all elements\n    var cacheBlocks = function() {\n      for (var i = 0; i < self.elems.length; i++){\n        var block = createBlock(self.elems[i]);\n        blocks.push(block);\n      }\n    };\n\n\n    // Let's kick this script off\n    // Build array for cached element values\n    var init = function() {\n      for (var i = 0; i < blocks.length; i++){\n        self.elems[i].style.cssText = blocks[i].style;\n      }\n\n      blocks = [];\n\n      screenY = window.innerHeight;\n      screenX = window.innerWidth;\n      currentBreakpoint = getCurrentBreakpoint(screenX);\n\n      setPosition();\n\n      cacheBlocks();\n\n      animate();\n\n      // If paused, unpause and set listener for window resizing events\n      if (pause) {\n        window.addEventListener('resize', init);\n        pause = false;\n        // Start the loop\n        update();\n      }\n    };\n\n    // We want to cache the parallax blocks'\n    // values: base, top, height, speed\n    // el: is dom object, return: el cache values\n    var createBlock = function(el) {\n      var dataPercentage = el.getAttribute( 'data-rellax-percentage' );\n      var dataSpeed = el.getAttribute( 'data-rellax-speed' );\n      var dataXsSpeed = el.getAttribute( 'data-rellax-xs-speed' );\n      var dataMobileSpeed = el.getAttribute( 'data-rellax-mobile-speed' );\n      var dataTabletSpeed = el.getAttribute( 'data-rellax-tablet-speed' );\n      var dataDesktopSpeed = el.getAttribute( 'data-rellax-desktop-speed' );\n      var dataVerticalSpeed = el.getAttribute('data-rellax-vertical-speed');\n      var dataHorizontalSpeed = el.getAttribute('data-rellax-horizontal-speed');\n      var dataVerticalScrollAxis = el.getAttribute('data-rellax-vertical-scroll-axis');\n      var dataHorizontalScrollAxis = el.getAttribute('data-rellax-horizontal-scroll-axis');\n      var dataZindex = el.getAttribute( 'data-rellax-zindex' ) || 0;\n      var dataMin = el.getAttribute( 'data-rellax-min' );\n      var dataMax = el.getAttribute( 'data-rellax-max' );\n      var dataMinX = el.getAttribute('data-rellax-min-x');\n      var dataMaxX = el.getAttribute('data-rellax-max-x');\n      var dataMinY = el.getAttribute('data-rellax-min-y');\n      var dataMaxY = el.getAttribute('data-rellax-max-y');\n      var mapBreakpoints;\n      var breakpoints = true;\n\n      if (!dataXsSpeed && !dataMobileSpeed && !dataTabletSpeed && !dataDesktopSpeed) {\n        breakpoints = false;\n      } else {\n        mapBreakpoints = {\n          'xs': dataXsSpeed,\n          'sm': dataMobileSpeed,\n          'md': dataTabletSpeed,\n          'lg': dataDesktopSpeed\n        };\n      }\n\n      // initializing at scrollY = 0 (top of browser), scrollX = 0 (left of browser)\n      // ensures elements are positioned based on HTML layout.\n      //\n      // If the element has the percentage attribute, the posY and posX needs to be\n      // the current scroll position's value, so that the elements are still positioned based on HTML layout\n      var wrapperPosY = self.options.wrapper ? self.options.wrapper.scrollTop : (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);\n      // If the option relativeToWrapper is true, use the wrappers offset to top, subtracted from the current page scroll.\n      if (self.options.relativeToWrapper) {\n        var scrollPosY = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);\n        wrapperPosY = scrollPosY - self.options.wrapper.offsetTop;\n      }\n      var posY = self.options.vertical ? ( dataPercentage || self.options.center ? wrapperPosY : 0 ) : 0;\n      var posX = self.options.horizontal ? ( dataPercentage || self.options.center ? self.options.wrapper ? self.options.wrapper.scrollLeft : (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft) : 0 ) : 0;\n\n      var blockTop = posY + el.getBoundingClientRect().top;\n      var blockHeight = el.clientHeight || el.offsetHeight || el.scrollHeight;\n\n      var blockLeft = posX + el.getBoundingClientRect().left;\n      var blockWidth = el.clientWidth || el.offsetWidth || el.scrollWidth;\n\n      // apparently parallax equation everyone uses\n      var percentageY = dataPercentage ? dataPercentage : (posY - blockTop + screenY) / (blockHeight + screenY);\n      var percentageX = dataPercentage ? dataPercentage : (posX - blockLeft + screenX) / (blockWidth + screenX);\n      if(self.options.center){ percentageX = 0.5; percentageY = 0.5; }\n\n      // Optional individual block speed as data attr, otherwise global speed\n      var speed = (breakpoints && mapBreakpoints[currentBreakpoint] !== null) ? Number(mapBreakpoints[currentBreakpoint]) : (dataSpeed ? dataSpeed : self.options.speed);\n      var verticalSpeed = dataVerticalSpeed ? dataVerticalSpeed : self.options.verticalSpeed;\n      var horizontalSpeed = dataHorizontalSpeed ? dataHorizontalSpeed : self.options.horizontalSpeed;\n\n      // Optional individual block movement axis direction as data attr, otherwise global movement direction\n      var verticalScrollAxis = dataVerticalScrollAxis ? dataVerticalScrollAxis : self.options.verticalScrollAxis;\n      var horizontalScrollAxis = dataHorizontalScrollAxis ? dataHorizontalScrollAxis : self.options.horizontalScrollAxis;\n\n      var bases = updatePosition(percentageX, percentageY, speed, verticalSpeed, horizontalSpeed);\n\n      // ~~Store non-translate3d transforms~~\n      // Store inline styles and extract transforms\n      var style = el.style.cssText;\n      var transform = '';\n\n      // Check if there's an inline styled transform\n      var searchResult = /transform\\s*:/i.exec(style);\n      if (searchResult) {\n        // Get the index of the transform\n        var index = searchResult.index;\n\n        // Trim the style to the transform point and get the following semi-colon index\n        var trimmedStyle = style.slice(index);\n        var delimiter = trimmedStyle.indexOf(';');\n\n        // Remove \"transform\" string and save the attribute\n        if (delimiter) {\n          transform = \" \" + trimmedStyle.slice(11, delimiter).replace(/\\s/g,'');\n        } else {\n          transform = \" \" + trimmedStyle.slice(11).replace(/\\s/g,'');\n        }\n      }\n\n      return {\n        baseX: bases.x,\n        baseY: bases.y,\n        top: blockTop,\n        left: blockLeft,\n        height: blockHeight,\n        width: blockWidth,\n        speed: speed,\n        verticalSpeed: verticalSpeed,\n        horizontalSpeed: horizontalSpeed,\n        verticalScrollAxis: verticalScrollAxis,\n        horizontalScrollAxis: horizontalScrollAxis,\n        style: style,\n        transform: transform,\n        zindex: dataZindex,\n        min: dataMin,\n        max: dataMax,\n        minX: dataMinX,\n        maxX: dataMaxX,\n        minY: dataMinY,\n        maxY: dataMaxY\n      };\n    };\n\n    // set scroll position (posY, posX)\n    // side effect method is not ideal, but okay for now\n    // returns true if the scroll changed, false if nothing happened\n    var setPosition = function() {\n      var oldY = posY;\n      var oldX = posX;\n\n      posY = self.options.wrapper ? self.options.wrapper.scrollTop : (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;\n      posX = self.options.wrapper ? self.options.wrapper.scrollLeft : (document.documentElement || document.body.parentNode || document.body).scrollLeft || window.pageXOffset;\n      // If option relativeToWrapper is true, use relative wrapper value instead.\n      if (self.options.relativeToWrapper) {\n        var scrollPosY = (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;\n        posY = scrollPosY - self.options.wrapper.offsetTop;\n      }\n\n\n      if (oldY != posY && self.options.vertical) {\n        // scroll changed, return true\n        return true;\n      }\n\n      if (oldX != posX && self.options.horizontal) {\n        // scroll changed, return true\n        return true;\n      }\n\n      // scroll did not change\n      return false;\n    };\n\n    // Ahh a pure function, gets new transform value\n    // based on scrollPosition and speed\n    // Allow for decimal pixel values\n    var updatePosition = function(percentageX, percentageY, speed, verticalSpeed, horizontalSpeed) {\n      var result = {};\n      var valueX = ((horizontalSpeed ? horizontalSpeed : speed) * (100 * (1 - percentageX)));\n      var valueY = ((verticalSpeed ? verticalSpeed : speed) * (100 * (1 - percentageY)));\n\n      result.x = self.options.round ? Math.round(valueX) : Math.round(valueX * 100) / 100;\n      result.y = self.options.round ? Math.round(valueY) : Math.round(valueY * 100) / 100;\n\n      return result;\n    };\n\n    // Remove event listeners and loop again\n    var deferredUpdate = function() {\n      window.removeEventListener('resize', deferredUpdate);\n      window.removeEventListener('orientationchange', deferredUpdate);\n      (self.options.wrapper ? self.options.wrapper : window).removeEventListener('scroll', deferredUpdate);\n      (self.options.wrapper ? self.options.wrapper : document).removeEventListener('touchmove', deferredUpdate);\n\n      // loop again\n      loopId = loop(update);\n    };\n\n    // Loop\n    var update = function() {\n      if (setPosition() && pause === false) {\n        animate();\n\n        // loop again\n        loopId = loop(update);\n      } else {\n        loopId = null;\n\n        // Don't animate until we get a position updating event\n        window.addEventListener('resize', deferredUpdate);\n        window.addEventListener('orientationchange', deferredUpdate);\n        (self.options.wrapper ? self.options.wrapper : window).addEventListener('scroll', deferredUpdate, supportsPassive ? { passive: true } : false);\n        (self.options.wrapper ? self.options.wrapper : document).addEventListener('touchmove', deferredUpdate, supportsPassive ? { passive: true } : false);\n      }\n    };\n\n    // Transform3d on parallax element\n    var animate = function() {\n      var positions;\n      for (var i = 0; i < self.elems.length; i++){\n        // Determine relevant movement directions\n        var verticalScrollAxis = blocks[i].verticalScrollAxis.toLowerCase();\n        var horizontalScrollAxis = blocks[i].horizontalScrollAxis.toLowerCase();\n        var verticalScrollX = verticalScrollAxis.indexOf(\"x\") != -1 ? posY : 0;\n        var verticalScrollY = verticalScrollAxis.indexOf(\"y\") != -1 ? posY : 0;\n        var horizontalScrollX = horizontalScrollAxis.indexOf(\"x\") != -1 ? posX : 0;\n        var horizontalScrollY = horizontalScrollAxis.indexOf(\"y\") != -1 ? posX : 0;\n\n        var percentageY = ((verticalScrollY + horizontalScrollY - blocks[i].top + screenY) / (blocks[i].height + screenY));\n        var percentageX = ((verticalScrollX + horizontalScrollX - blocks[i].left + screenX) / (blocks[i].width + screenX));\n\n        // Subtracting initialize value, so element stays in same spot as HTML\n        positions = updatePosition(percentageX, percentageY, blocks[i].speed, blocks[i].verticalSpeed, blocks[i].horizontalSpeed);\n        var positionY = positions.y - blocks[i].baseY;\n        var positionX = positions.x - blocks[i].baseX;\n\n        // The next two \"if\" blocks go like this:\n        // Check if a limit is defined (first \"min\", then \"max\");\n        // Check if we need to change the Y or the X\n        // (Currently working only if just one of the axes is enabled)\n        // Then, check if the new position is inside the allowed limit\n        // If so, use new position. If not, set position to limit.\n\n        // Check if a min limit is defined\n        if (blocks[i].min !== null) {\n          if (self.options.vertical && !self.options.horizontal) {\n            positionY = positionY <= blocks[i].min ? blocks[i].min : positionY;\n          }\n          if (self.options.horizontal && !self.options.vertical) {\n            positionX = positionX <= blocks[i].min ? blocks[i].min : positionX;\n          }\n        }\n\n        // Check if directional min limits are defined\n        if (blocks[i].minY != null) {\n            positionY = positionY <= blocks[i].minY ? blocks[i].minY : positionY;\n        }\n        if (blocks[i].minX != null) {\n            positionX = positionX <= blocks[i].minX ? blocks[i].minX : positionX;\n        }\n\n        // Check if a max limit is defined\n        if (blocks[i].max !== null) {\n          if (self.options.vertical && !self.options.horizontal) {\n            positionY = positionY >= blocks[i].max ? blocks[i].max : positionY;\n          }\n          if (self.options.horizontal && !self.options.vertical) {\n            positionX = positionX >= blocks[i].max ? blocks[i].max : positionX;\n          }\n        }\n\n        // Check if directional max limits are defined\n        if (blocks[i].maxY != null) {\n            positionY = positionY >= blocks[i].maxY ? blocks[i].maxY : positionY;\n        }\n        if (blocks[i].maxX != null) {\n            positionX = positionX >= blocks[i].maxX ? blocks[i].maxX : positionX;\n        }\n\n        var zindex = blocks[i].zindex;\n\n        // Move that element\n        // (Set the new translation and append initial inline transforms.)\n        var translate = 'translate3d(' + (self.options.horizontal ? positionX : '0') + 'px,' + (self.options.vertical ? positionY : '0') + 'px,' + zindex + 'px) ' + blocks[i].transform;\n        self.elems[i].style[transformProp] = translate;\n      }\n      self.options.callback(positions);\n    };\n\n    self.destroy = function() {\n      for (var i = 0; i < self.elems.length; i++){\n        self.elems[i].style.cssText = blocks[i].style;\n      }\n\n      // Remove resize event listener if not pause, and pause\n      if (!pause) {\n        window.removeEventListener('resize', init);\n        pause = true;\n      }\n\n      // Clear the animation loop to prevent possible memory leak\n      clearLoop(loopId);\n      loopId = null;\n    };\n\n    // Init\n    init();\n\n    // Allow to recalculate the initial values whenever we want\n    self.refresh = init;\n\n    return self;\n  };\n  return Rellax;\n}));\n"
  },
  {
    "path": "tests/center.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\t<style>\n\t\thtml, body{\n\t\t\tcolor: #223;\n\t\t\tfont-size: 21pt;\n\t\t\tmargin: 0; padding: 0;\n\t\t}\n\t\tnav{\n\t\t\tfont-size: 21pt;\n\t\t\tline-height: 1.5em;\n\t\t\tposition: fixed;\n\t\t\tbottom: 0; left: 0;\n\t\t}\n\t\tnav a{ color: inherit; }\n\n\t\t.col{\n\t\t\ttext-align: center;\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\th4{ text-align: center;}\n\n\t\t.container{\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toutline: 1px solid #eed;\n\t\t\tfont-size: 42pt;\n\t\t\t/*padding: 37.5vh 12.5vw;*/\n\t\t\tpadding: 0 12.5vw;\n\t\t\theight: 200vh;\n\t\t}\n\t\t.block{\n\t\t\tbackground: #223;\n\t\t\tcolor: #eed;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: right;\n\t\t\t/*padding: 0 42pt;*/\n\t\t\tmargin-top: 20vh;\n\t\t\theight: 200px;\n\t\t\twidth: 400px;\n\t\t\tposition: relative;\n\t\t}\n\t\tspan{\n\t\t\tbackground: #eed;\n\t\t\tcolor: #223;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: left;\n\t\t\tpadding: 0 42pt;\n\t\t\tdisplay: block;\n\t\t\twidth: 50%;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<h4>data-rellax-speed = default</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<br>With Percentage (0.5) <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-percentage=\"0.5\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<br>Without Percentage <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\t\tvar rellax = new Rellax('.rellax', {center: true});\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/destroy.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\t<style>\n\t\thtml, body{\n\t\t\tcolor: #223;\n\t\t\tfont-size: 21pt;\n\t\t\tmargin: 0; padding: 0;\n\t\t}\n\t\tnav{\n\t\t\tfont-size: 21pt;\n\t\t\tline-height: 1.5em;\n\t\t\tposition: fixed;\n\t\t\tbottom: 0; left: 0;\n\t\t}\n\t\tnav a{ color: inherit; }\n\n\t\t.col{\n\t\t\ttext-align: center;\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\th4{ text-align: center;}\n\n\t\t.container{\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toutline: 1px solid #eed;\n\t\t\tfont-size: 42pt;\n\t\t\t/*padding: 37.5vh 12.5vw;*/\n\t\t\tpadding: 0 12.5vw;\n\t\t\theight: 200vh;\n\t\t}\n\t\t.block{\n\t\t\tbackground: #223;\n\t\t\tcolor: #eed;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: right;\n\t\t\t/*padding: 0 42pt;*/\n\t\t\tmargin-top: 20vh;\n\t\t\theight: 200px;\n\t\t\twidth: 400px;\n\t\t\tposition: relative;\n\t\t}\n\t\tspan{\n\t\t\tbackground: #eed;\n\t\t\tcolor: #223;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: left;\n\t\t\tpadding: 0 42pt;\n\t\t\tdisplay: block;\n\t\t\twidth: 50%;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n    button {\n      position: fixed;\n      left: 50%;\n      transform: translateX(-50%);\n    }\n\t</style>\n</head>\n<body>\n  <h4>cancelAnimation upon destroy <br><small>(check performance panel)</small></h4>\n  <button id=\"destroy\">destroy</button>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<br>With Percentage (0.5) <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-percentage=\"0.5\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<br>Without Percentage <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\n    var rellax = new Rellax('.rellax', {\n      center: true,\n      callback: function(positions) {\n        // callback every position change\n        console.log(positions);\n      }\n    });\n\n    // test cancaelAnimation on Rellax destroy\n    document.querySelector('#destroy').addEventListener('click', function() {\n\n      rellax.destroy();\n\n    }, false);\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/directions.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <title></title>\n    <style>\n        html,\n        body {\n            color: #223;\n            font-size: 21pt;\n            margin: 0;\n            padding: 0;\n        }\n\n        nav {\n            font-size: 21pt;\n            line-height: 1.5em;\n            position: fixed;\n            bottom: 0;\n            left: 0;\n        }\n\n        nav a {\n            color: inherit;\n        }\n\n        .col {\n            text-align: center;\n            width: 50%;\n            float: left;\n            box-sizing: border-box;\n        }\n\n        h4 {\n            text-align: center;\n        }\n\n        .container {\n            outline: 1px solid #eed;\n            font-size: 42pt;\n            padding: 37.5vh 12.5vw;\n        }\n\n        .block {\n            background: #223;\n            color: #eed;\n            line-height: 25vh;\n            text-align: right;\n            padding: 0 42pt;\n            position: relative;\n        }\n\n        span {\n            background: #eed;\n            color: #223;\n            line-height: 25vh;\n            text-align: left;\n            padding: 0 42pt;\n            display: block;\n            width: 50%;\n            position: absolute;\n            top: 0;\n            left: 0;\n            box-sizing: border-box;\n        }\n\n    </style>\n</head>\n\n<body>\n    <h4>verticalScroll X / verticalScroll XY</h4>\n    <section>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#1<span class=\"rellax\" data-rellax-vertical-scroll-axis=\"x\">#1</span></div>\n            </div>\n        </div>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#1<span class=\"rellax\" data-rellax-vertical-scroll-axis=\"xy\">#1</span></div>\n            </div>\n        </div>\n    </section>\n\n    <h4>speedX = 3 / speedX = 1, speedY = 2</h4>\n    <h4>verticalScroll X / verticalScroll XY</h4>\n    <section>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#2<span class=\"rellax\" data-rellax-horizontal-speed=\"3\" data-rellax-vertical-scroll-axis=\"x\">#2</span></div>\n            </div>\n        </div>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#2<span class=\"rellax\" data-rellax-horizontal-speed=\"1\" data-rellax-vertical-speed=\"2\" data-rellax-vertical-scroll-axis=\"xy\">#2</span></div>\n            </div>\n        </div>\n    </section>\n\n    <h4>MaxX 200 / MinX -215 MinY -300</h4>\n    <h4>verticalScroll X / verticalScroll XY</h4>\n    <section>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#3<span class=\"rellax\" data-rellax-vertical-scroll-axis=\"x\" data-rellax-max-x=\"200\">#3</span></div>\n            </div>\n        </div>\n        <div class=\"col\">\n            <div class=\"container\">\n                <div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-vertical-scroll-axis=\"xy\" data-rellax-min-x=\"-215\" data-rellax-min-y=\"-300\">#3</span></div>\n            </div>\n        </div>\n    </section>\n\n    <!-- Scripts -->\n    <script src=\"../rellax.js\"></script>\n    <script>\n        var rellax = new Rellax('.rellax', {\n            horizontal: true,\n        });\n\n    </script>\n</body>\n\n</html>\n"
  },
  {
    "path": "tests/horizontal.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <title></title>\n  <style>\n    html, body{\n      color: #223;\n      font-size: 21pt;\n      margin: 0; padding: 0;\n    }\n    body\n    {\n      display: -webkit-box;  /* OLD - iOS 6-, Safari 3.1-6, BB7 */\n      display: -ms-flexbox;  /* TWEENER - IE 10 */\n      display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */\n      display: flex;         /* NEW, Spec - Firefox, Chrome, Opera */\n      width: 400vw;\n    }\n    nav{\n      font-size: 21pt;\n      line-height: 1.5em;\n      position: fixed;\n      bottom: 0; left: 0;\n    }\n    nav a{ color: inherit; }\n\n    section\n    {\n      width: 100vw;\n      height: 200vh;\n      -webkit-box-flex: 1;   /* OLD - iOS 6-, Safari 3.1-6 */\n      -webkit-flex: 1;       /* Safari 6.1+. iOS 7.1+, BB10 */\n      -ms-flex: 1;           /* IE 10 */\n      flex: 1;               /* NEW, Spec - Firefox, Chrome */\n    }\n\n    .col{\n      text-align: center;\n      width: 50%;\n      float: left;\n      box-sizing: border-box;\n    }\n\n    h4{ text-align: center;}\n\n    .container{\n      outline: 1px solid #eed;\n      font-size: 42pt;\n      padding: 37.5vh 12.5vw;\n    }\n    .block{\n      background: #223;\n      color: #eed;\n      line-height: 25vh;\n      text-align: right;\n      padding: 0 42pt;\n      position: relative;\n    }\n    span{\n      background: #eed;\n      color: #223;\n      line-height: 25vh;\n      text-align: left;\n      padding: 0 42pt;\n      display: block;\n      width: 50%;\n      position: absolute;\n      top: 0; left: 0;\n      box-sizing: border-box;\n    }\n  </style>\n</head>\n<body>\n\n<section>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"2\">#1</span></div></div>\n  </div>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"-2\">#1</span></div></div>\n  </div>\n</section>\n\n\n<section>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"4\">#2</span></div></div>\n  </div>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"-4\">#2</span></div></div>\n  </div>\n</section>\n\n\n<section>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"6\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n  </div>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"-6\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n  </div>\n</section>\n\n\n<section>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"8\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n  </div>\n  <div class=\"col\">\n    <div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"-8\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n  </div>\n</section>\n\n<!-- Scripts -->\n<script src=\"../rellax.js\"></script>\n<script>\n  var rellax = new Rellax('.rellax', {horizontal: true, vertical: true});\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "tests/percentage.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\t<style>\n\t\thtml, body{\n\t\t\tcolor: #223;\n\t\t\tfont-size: 21pt;\n\t\t\tmargin: 0; padding: 0;\n\t\t}\n\t\tnav{\n\t\t\tfont-size: 21pt;\n\t\t\tline-height: 1.5em;\n\t\t\tposition: fixed;\n\t\t\tbottom: 0; left: 0;\n\t\t}\n\t\tnav a{ color: inherit; }\n\n\t\t.col{\n\t\t\ttext-align: center;\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\th4{ text-align: center;}\n\n\t\t.container{\n\t\t\toutline: 1px solid #eed;\n\t\t\tfont-size: 42pt;\n\t\t\tpadding: 37.5vh 12.5vw;\n\t\t}\n\t\t.block{\n\t\t\tbackground: #223;\n\t\t\tcolor: #eed;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: right;\n\t\t\tpadding: 0 42pt;\n\t\t\tposition: relative;\n\t\t}\n\t\tspan{\n\t\t\tbackground: #eed;\n\t\t\tcolor: #223;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: left;\n\t\t\tpadding: 0 42pt;\n\t\t\tdisplay: block;\n\t\t\twidth: 50%;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<h4>data-rellax-speed = default</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<br>With Percentage (0.5) <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-percentage=\"0.5\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-percentage=\"0.5\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-percentage=\"0.5\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<br>Without Percentage <br><br>\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- /// -->\n\t<h4>data-rellax-speed = 2</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<br>With Percentage (0.5) <br><br>\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#1</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#5</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-speed=\"2\" data-rellax-percentage=\"0.5\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<br>Without Percentage <br><br>\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"2\">#1</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"2\">#2</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"2\">#3</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"2\">#4</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-speed=\"2\">#5</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-speed=\"2\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- /// -->\n\t<h4>Misc</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<br>With Percentage (0.5) <br><br>\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"1\" data-rellax-percentage=\"0.5\">#1</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"-1\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"4\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"-4\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-speed=\"0\" data-rellax-percentage=\"0.5\">#5</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-speed=\"-10\" data-rellax-percentage=\"0.5\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<br>Without Percentage <br><br>\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"1\">#1</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"-1\">#2</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"0\">#3</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"0\">#4</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-speed=\"0\">#5</span></div></div>\n\t\t\t<div class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-speed=\"0\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\t\tvar rellax = new Rellax();\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/range.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\n\t<style>\n\t\thtml, body {\n\t\t\tmargin: 0; padding: 0;\n\t\t\tfont-family: monospace;\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t.flex {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\theight: 100vh; width: 100%;\n\t\t\tpadding: 60vh 0;\n\t\t}\n\n\t\t.rellax-container {\n\t\t\theight: 25vmin; width: 25vmin;\n\t\t\tposition: relative;\n\t\t\tbackground: #ccc;\n\t\t\tmargin: 0 3vmin;\n\t\t\tbox-shadow: inset 0 .5rem 4rem -1rem rgba(0,0,0,.8),\n\t\t\t\t\t\t0 -119px 0 #fff,\n\t\t\t\t\t\t0 -120px 0 #888,\n\t\t\t\t\t\t0 119px 0 #fff,\n\t\t\t\t\t\t0 120px 0 #888;\n\t\t}\n\n\t\t.rellax {\n\t\t\tbackground: #123;\n\t\t\tcolor: #fff;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\theight: 100%; width: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tbox-shadow: 0 .5rem 2rem -1rem rgba(0,0,0,1);\n\t\t\twill-change: transform;\n\t\t}\n\t</style>\n\n</head>\n<body>\n\n\t<div class=\"flex\">\n\t\t<div class=\"rellax-container\">\n\t\t\t<div class=\"rellax\" data-rellax-speed=\"-5\"> null </div>\n\t\t</div>\n\t\t<div class=\"rellax-container\">\n\t\t\t<div class=\"rellax\" data-rellax-speed=\"-5\" data-rellax-min=\"0\">min: 0</div>\n\t\t</div>\n\t\t<div class=\"rellax-container\">\n\t\t\t<div class=\"rellax\" data-rellax-speed=\"-5\" data-rellax-min=\"-120\" data-rellax-max=\"120\">min: -120 | max: 120</div>\n\t\t</div>\n\t\t<div class=\"rellax-container\">\n\t\t\t<div class=\"rellax\" data-rellax-speed=\"-5\" data-rellax-max=\"120\">max: 120</div>\n\t\t</div>\n\t</div>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\t\tvar rellax = new Rellax('.rellax', {center: true});\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/responsive-speeds.html",
    "content": "<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n    <title>Responsive Speeds</title>\n    <style>\n      html,\n      body {\n        color: #223;\n        font-size: 21pt;\n        margin: 0;\n        padding: 0;\n      }\n\n      section {\n        margin-top: 30vh;\n        width: 100vw;\n        height: 200vh;\n        -webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */\n        -webkit-flex: 1; /* Safari 6.1+. iOS 7.1+, BB10 */\n        -ms-flex: 1; /* IE 10 */\n        flex: 1; /* NEW, Spec - Firefox, Chrome */\n      }\n\n      h4 {\n        text-align: center;\n      }\n\n      .block {\n        background: #223;\n        position: relative;\n        padding-top: 45px;\n        width: 100%;\n      }\n\n      .block::before {\n        content: \"Static BG - Mobile\";\n        color: #fff;\n        position: absolute;\n        margin-left: 15px;\n        top: 0;\n      }\n\n      @media screen and (min-width: 768px) {\n        .block::before {\n          content: \"Static BG - Tablet\";\n        }\n      }\n\n      @media screen and (min-width: 1201px) {\n        .block::before {\n          content: \"Static BG - Desktop\";\n        }\n      }\n\n      span {\n        background: #eed;\n        color: #223;\n        text-align: left;\n        padding: 10px;\n        display: block;\n        width: 50%;\n        margin-left: 25%;\n        min-height: 100px;\n        box-sizing: border-box;\n        border: 1px solid #ccc;\n      }\n    </style>\n  </head>\n  <body>\n    <section>\n      <div class=\"block\">\n        <span\n          class=\"rellax\"\n          data-rellax-speed=\"-2\"\n          data-rellax-xs-speed=\"1\"\n          data-rellax-mobile-speed=\"3\"\n          data-rellax-tablet-speed=\"7\"\n          data-rellax-desktop-speed=\"10\"\n          >I move upwards faster on larger screens</span\n        >\n        <span\n          class=\"rellax\"\n          data-rellax-speed=\"-2\"\n          data-rellax-xs-speed=\"-1\"\n          data-rellax-mobile-speed=\"-3\"\n          data-rellax-tablet-speed=\"-7\"\n          data-rellax-desktop-speed=\"-10\"\n          >I move downwards faster on larger screens</span\n        >\n      </div>\n    </section>\n\n    <!-- Scripts -->\n    <script src=\"../rellax.js\"></script>\n    <script>\n      var rellax = new Rellax(\".rellax\", {\n        breakpoints: [200, 400, 600]\n      });\n    </script>\n  </body>\n</html>\n"
  },
  {
    "path": "tests/speed.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\t<style>\n\t\thtml, body{\n\t\t\tcolor: #223;\n\t\t\tfont-size: 21pt;\n\t\t\tmargin: 0; padding: 0;\n\t\t}\n\t\tnav{\n\t\t\tfont-size: 21pt;\n\t\t\tline-height: 1.5em;\n\t\t\tposition: fixed;\n\t\t\tbottom: 0; left: 0;\n\t\t}\n\t\tnav a{ color: inherit; }\n\n\t\t.col{\n\t\t\ttext-align: center;\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\th4{ text-align: center;}\n\n\t\t.container{\n\t\t\toutline: 1px solid #eed;\n\t\t\tfont-size: 42pt;\n\t\t\tpadding: 37.5vh 12.5vw;\n\t\t}\n\t\t.block{\n\t\t\tbackground: #223;\n\t\t\tcolor: #eed;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: right;\n\t\t\tpadding: 0 42pt;\n\t\t\tposition: relative;\n\t\t}\n\t\tspan{\n\t\t\tbackground: #eed;\n\t\t\tcolor: #223;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: left;\n\t\t\tpadding: 0 42pt;\n\t\t\tdisplay: block;\n\t\t\twidth: 50%;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<h4>speed = -1000 / speed = -10</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"-1000\">#1</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-speed=\"-10\">#1</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<h4>speed = 1000 / speed = 10</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"1000\">#2</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-speed=\"10\">#2</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<h4>percentage = 0.5</h4>\n\t<h4>speed = -1000 / speed = -5</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"-1000\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-speed=\"-5\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<h4>percentage = 0.5</h4>\n\t<h4>speed = 1000 / speed = 5</h4>\n\t<section>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"1000\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<div class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-speed=\"5\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\t\tvar rellax = new Rellax();\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/style.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t<title></title>\n\t<style>\n\t\thtml, body{\n\t\t\tcolor: #223;\n\t\t\tfont-size: 21pt;\n\t\t\tmargin: 0; padding: 0;\n\t\t}\n\t\tnav{\n\t\t\tfont-size: 21pt;\n\t\t\tline-height: 1.5em;\n\t\t\tposition: fixed;\n\t\t\tbottom: 0; left: 0;\n\t\t}\n\t\tnav a{ color: inherit; }\n\n\t\t.col{\n\t\t\ttext-align: center;\n\t\t\twidth: 50%;\n\t\t\tfloat: left;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\th4{ text-align: center;}\n\n\t\t.container{\n\t\t\toutline: 1px solid #eed;\n\t\t\tfont-size: 42pt;\n\t\t\tpadding: 37.5vh 12.5vw;\n\t\t}\n\t\t.block{\n\t\t\tbackground: #223;\n\t\t\tcolor: #eed;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: right;\n\t\t\tpadding: 0 42pt;\n\t\t\tposition: relative;\n\t\t}\n\t\tspan{\n\t\t\tbackground: #eed;\n\t\t\tcolor: #223;\n\t\t\tline-height: 25vh;\n\t\t\ttext-align: left;\n\t\t\tpadding: 0 42pt;\n\t\t\tdisplay: block;\n\t\t\twidth: 50%;\n\t\t\tposition: absolute;\n\t\t\ttop: 0; left: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<section>\n\t\t<div class=\"col\">\n<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"background:#b02; color:#fff;\">#1</span></div></div>\n<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\" data-rellax-percentage=\"0.5\">#2</span></div></div>\n<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\" data-rellax-percentage=\"0.5\">#3</span></div></div>\n<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\" data-rellax-percentage=\"0.5\">#4</span></div></div>\n<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\" data-rellax-percentage=\"0.5\">#5</span></div></div>\n<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"background:#b02; color:#fff;\">#6</span></div></div>\n\t\t</div>\n\t\t<div class=\"col\">\n\t\t\t<div id=\"21\" class=\"container\"><div class=\"block\">#1<span class=\"rellax\" style=\"background:#b02; color:#fff;\">#1</span></div></div>\n\t\t\t<div id=\"22\" class=\"container\"><div class=\"block\">#2<span class=\"rellax\">#2</span></div></div>\n\t\t\t<div id=\"23\" class=\"container\"><div class=\"block\">#3<span class=\"rellax\">#3</span></div></div>\n\t\t\t<div id=\"24\" class=\"container\"><div class=\"block\">#4<span class=\"rellax\" style=\"background:#b02; color:#fff;\">#4</span></div></div>\n\t\t\t<div id=\"25\" class=\"container\"><div class=\"block\">#5<span class=\"rellax\">#5</span></div></div>\n\t\t\t<div id=\"26\" class=\"container\"><div class=\"block\">#6<span class=\"rellax\">#6</span></div></div>\n\t\t</div>\n\t</section>\n\n\t<!-- Scripts -->\n\t<script src=\"../rellax.js\"></script>\n\t<script>\n\t\tvar rellax = new Rellax();\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "tests/wrapper.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <title></title>\n    <style>\n        html, body {\n            color: #223;\n            font-size: 21pt;\n            margin: 0;\n            padding: 0;\n            width: 100%;\n            height: 100%;\n            min-height: 100%;\n            position: relative;\n        }\n\n        .Layout__wrapper-container {\n            position: absolute;\n            width: 100%;\n            height: 100%;\n        }\n\n        .Layout__wrapper {\n            width: 100%;\n            height: 100%;\n            display: flex;\n            flex-direction: column;\n            overflow-y: auto;\n            overflow-x: hidden;\n            position: relative;\n        }\n\n        .Layout__main {\n            padding: 0;\n            margin: 0;\n            display: flex;\n            flex-wrap: wrap;\n            align-content: space-between;\n            position: relative;\n            overflow-x: hidden;\n            overflow-y: auto;\n            flex-grow: 1;\n            z-index: 1;\n        }\n\n        .page-content {\n            max-width: 100vw;\n            flex: 100%;\n        }\n\n        .col {\n            text-align: center;\n            width: 50%;\n            float: left;\n            box-sizing: border-box;\n        }\n\n        h4 {\n            text-align: center;\n        }\n\n        .container {\n            display: flex;\n            align-items: center;\n            outline: 1px solid #eed;\n            font-size: 42pt;\n            padding: 0 12.5vw;\n            height: 200vh;\n        }\n\n        .block {\n            background: #223;\n            color: #eed;\n            line-height: 25vh;\n            text-align: right;\n            margin-top: 20vh;\n            height: 200px;\n            width: 400px;\n            position: relative;\n        }\n\n        span {\n            background: #eed;\n            color: #223;\n            line-height: 25vh;\n            text-align: left;\n            padding: 0 42pt;\n            display: block;\n            width: 50%;\n            position: absolute;\n            top: 0;\n            left: 0;\n            box-sizing: border-box;\n        }\n    </style>\n</head>\n<body>\n    <div class=\"Layout__wrapper-container\">\n        <div class=\"Layout__wrapper\">\n            <!-- Here can be fixed header -->\n            <main class=\"Layout__main\">\n                <div class=\"page-content\">\n                    <h4>data-rellax-speed = default</h4>\n                        <section>\n                            <div class=\"col\">\n                                <br>With Percentage (0.5) <br><br>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #1<span class=\"rellax\" data-rellax-percentage=\"0.5\">#1</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #2<span class=\"rellax\" data-rellax-percentage=\"0.5\">#2</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #3<span class=\"rellax\" data-rellax-percentage=\"0.5\">#3</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #4<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#4</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #5<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#5</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #6<span class=\"rellax\" data-rellax-percentage=\"0.5\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#6</span>\n                                    </div>\n                                </div>\n                            </div>\n                            <div class=\"col\">\n                                <br>Without Percentage <br><br>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #1<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#1</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #2<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#2</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #3<span class=\"rellax\" style=\"transition: transform 10s cubic-bezier(0,1,.5,1);\">#3</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #4<span class=\"rellax\">#4</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #5<span class=\"rellax\">#5</span>\n                                    </div>\n                                </div>\n                                <div class=\"container\">\n                                    <div class=\"block\">\n                                        #6<span class=\"rellax\">#6</span>\n                                    </div>\n                                </div>\n                            </div>\n                        </section>\n                    </div>\n                </div>\n            </main>\n            <!-- Here can be fixed footer -->\n        </div>\n    </div>\n\n    <!-- Scripts -->\n    <script src=\"../rellax.js\"></script>\n    <script>\n        var rellax = new Rellax('.rellax', {\n            center: true,\n            wrapper: document.querySelector('.Layout__main') // or '.Layout__main'\n        });\n    </script>\n</body>\n</html>\n"
  }
]