Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var ParallaxManager, ParallaxPart;
- ParallaxPart = (function() {
- function ParallaxPart(el) {
- this.el = el;
- this.speed = parseFloat(this.el.getAttribute('data-parallax-speed'));
- this.maxScroll = parseInt(this.el.getAttribute('data-max-scroll'));
- }
- ParallaxPart.prototype.update = function(scrollY) {
- // if (scrollY > this.maxScroll) { return; }
- var offset = 0;
- if($(window).scrollTop() + $(window).height() == $(document).height()) {
- }else{
- var offset = -(scrollY * this.speed);
- }
- var offset = (scrollY * this.speed);
- this.setYTransform(offset);
- };
- ParallaxPart.prototype.setYTransform = function(val) {
- this.el.style.webkitTransform = "translate3d(0, " + val + "px, 0)";
- this.el.style.MozTransform = "translate3d(0, " + val + "px, 0)";
- this.el.style.OTransform = "translate3d(0, " + val + "px, 0)";
- this.el.style.transform = "translate3d(0, " + val + "px, 0)";
- this.el.style.msTransform = "translateY(" + val + "px)";
- };
- return ParallaxPart;
- })();
- ParallaxManager = (function() {
- ParallaxManager.prototype.parts = [];
- function ParallaxManager(elements) {
- if (typeof elements === 'array' && elements.length) {
- this.elements = elements;
- }
- if (typeof elements === 'object' && elements.item) {
- this.elements = Array.prototype.slice.call(elements);
- } else if (typeof elements === 'string') {
- this.elements = document.querySelectorAll(elements);
- if (this.elements.length === 0) {
- throw new Error("Parallax: No elements found");
- }
- this.elements = Array.prototype.slice.call(this.elements);
- } else {
- throw new Error("Parallax: Element variable is not a querySelector string, Array, or NodeList");
- }
- for (var i in this.elements) {
- this.parts.push(new ParallaxPart(this.elements[i]));
- }
- window.addEventListener("scroll", this.onScroll.bind(this));
- }
- ParallaxManager.prototype.onScroll = function() {
- window.requestAnimationFrame(this.scrollHandler.bind(this));
- };
- ParallaxManager.prototype.scrollHandler = function() {
- //var scrollY = Math.max(window.pageYOffset,0);
- //console.log("window height");
- //console.log($(window).height());
- var scrollY = $(document).height()-($(window).scrollTop() + $(window).height());
- //console.log("scroll amount");
- //console.log(scrollY);
- //console.log($(window).scrollTop());
- //var scrollY = Math.max(window.pageYOffset, 0);
- for (var i in this.parts) { this.parts[i].update(scrollY); }
- };
- return ParallaxManager;
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement