UNPKG

este-library-oldschool

Version:

Library for github.com/steida/este.git

67 lines (62 loc) 1.86 kB
// Generated by github.com/steida/coffee2closure 900.1.18 /** @fileoverview Align one element with another element via CSS3 animations. */ goog.provide('este.labs.ui.Baseliner'); goog.require('goog.style'); /** @param {Element} linksContainer @param {Element} targetsContainer @constructor */ este.labs.ui.Baseliner = function(linksContainer, targetsContainer) { this.linksContainer = linksContainer; this.targetsContainer = targetsContainer; } /** @type {string} */ este.labs.ui.Baseliner.prototype.selectedClassName = 'selected'; /** @type {number} @protected */ este.labs.ui.Baseliner.prototype.prevY = 0; este.labs.ui.Baseliner.prototype.update = function() { return setTimeout((function(_this) { return function() { var link, target; link = _this.linksContainer.querySelector('.' + _this.selectedClassName); target = _this.targetsContainer.querySelector('.' + _this.selectedClassName); if (!link || !target) { return; } goog.style.setStyle(_this.targetsContainer, { 'transform': 'translateY(0px)' }); _this.prevY = _this.getLinkAndTargetDiff(link, target) + _this.prevY; return _this.setTargetsContainerStyle(); }; })(this), 0); }; /** @param {Element} link @param {Element} target @return {number} @protected */ este.labs.ui.Baseliner.prototype.getLinkAndTargetDiff = function(link, target) { var linkTop, targetTop; linkTop = link.getBoundingClientRect().top; targetTop = target.getBoundingClientRect().top; return Math.round(linkTop) - Math.round(targetTop); }; /** @protected */ este.labs.ui.Baseliner.prototype.setTargetsContainerStyle = function() { return goog.style.setStyle(this.targetsContainer, { 'transition': '-webkit-transform .3s ease-in-out', 'transform': "translateY(" + this.prevY + "px)" }); };