Skip to content

Instantly share code, notes, and snippets.

@davidlwatsonjr
Last active November 30, 2016 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidlwatsonjr/a5fcc03a794d89e0f641570ac96cecaa to your computer and use it in GitHub Desktop.
Save davidlwatsonjr/a5fcc03a794d89e0f641570ac96cecaa to your computer and use it in GitHub Desktop.
<link rel="import" href="//polygit.org/components/polymer/polymer.html" />
<dom-module id="parallax-parent">
<template>
<style>
:host {
position: relative;
overflow: hidden;
}
:host ::content [parallax-speed] {
position: relative;
}
</style>
<content></content>
</template>
</dom-module>
<script>
(function(dlwj){
dlwj.ParallaxParentElement = Polymer({
is: 'parallax-parent',
properties: {},
ready: function() {
var parallaxParent = this;
var parallaxedElements = this.queryAllEffectiveChildren('[parallax-speed]');
for (i = 0; i < parallaxedElements.length; i++) {
parallaxedElement = parallaxedElements[i];
parallaxedElement.originalPosition = {
};
}
window.addEventListener('scroll', function() {
var parallaxedElement, parallaxSpeed, i, parallaxParentTop;
parallaxParentTop = parallaxParent.getBoundingClientRect().top;
for (i = 0; i < parallaxedElements.length; i++) {
parallaxedElement = parallaxedElements[i];
parallaxSpeed = parseInt(parallaxedElement.attributes['parallax-speed'], 10);
if (!isNaN(parallaxSpeed)) {
parallaxedElement.top = -1 * parallaxSpeed * parallaxParentTop;
}
}
});
}
});
}(window.davidlwatsonjr = window.davidlwatsonjr || {}));
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment