Last active
April 17, 2020 08:32
-
-
Save koyanloshe/fc8c28a1824cff972a4783d9f418eae1 to your computer and use it in GitHub Desktop.
Foundation equaliser #Javascript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* This is a JavaScript Scratchpad. | |
* | |
* Enter some JavaScript, then Right Click or choose from the Execute Menu: | |
* 1. Run to evaluate the selected text (Cmd-R), | |
* 2. Inspect to bring up an Object Inspector on the result (Cmd-I), or, | |
* 3. Display to insert the result in a comment after the selection. (Cmd-L) | |
*/ | |
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==='object'&&typeof module==='object') | |
module.exports=factory(require("./foundation.core"),require("./foundation.core.plugin"),require("./foundation.core.utils"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery"));else if(typeof define==='function'&&define.amd) | |
define(["./foundation.core","./foundation.core.plugin","./foundation.core.utils","./foundation.util.imageLoader","./foundation.util.mediaQuery","jquery"],factory);else if(typeof exports==='object') | |
exports["foundation.equalizer"]=factory(require("./foundation.core"),require("./foundation.core.plugin"),require("./foundation.core.utils"),require("./foundation.util.imageLoader"),require("./foundation.util.mediaQuery"),require("jquery"));else | |
root["__FOUNDATION_EXTERNAL__"]=root["__FOUNDATION_EXTERNAL__"]||{},root["__FOUNDATION_EXTERNAL__"]["foundation.equalizer"]=factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"],root["__FOUNDATION_EXTERNAL__"]["foundation.core"],root["__FOUNDATION_EXTERNAL__"]["foundation.core"],root["__FOUNDATION_EXTERNAL__"]["foundation.util.imageLoader"],root["__FOUNDATION_EXTERNAL__"]["foundation.util.mediaQuery"],root["jQuery"]);})(window,function(__WEBPACK_EXTERNAL_MODULE__foundation_core__,__WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__,__WEBPACK_EXTERNAL_MODULE__foundation_core_utils__,__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__,__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__,__WEBPACK_EXTERNAL_MODULE_jquery__){return(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports;} | |
var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports;} | |
__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter});}};__webpack_require__.r=function(exports){if(typeof Symbol!=='undefined'&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});} | |
Object.defineProperty(exports,'__esModule',{value:true});};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if((mode&4)&&typeof value==='object'&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,'default',{enumerable:true,value:value});if(mode&2&&typeof value!='string')for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key];}.bind(null,key));return ns;};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module['default'];}:function getModuleExports(){return module;};__webpack_require__.d(getter,'a',getter);return getter;};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property);};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=6);}) | |
({"./foundation.core":/*!****************************************************************************************************************************************************************!*\ | |
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core","commonjs":"./foundation.core","commonjs2":"./foundation.core"} ***! | |
\****************************************************************************************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE__foundation_core__;}),"./foundation.core.plugin":/*!*************************************************************************************************************************************************************************************!*\ | |
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core.plugin","commonjs":"./foundation.core.plugin","commonjs2":"./foundation.core.plugin"} ***! | |
\*************************************************************************************************************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__;}),"./foundation.core.utils":/*!**********************************************************************************************************************************************************************************!*\ | |
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core.utils","commonjs":"./foundation.core.utils","commonjs2":"./foundation.core.utils"} ***! | |
\**********************************************************************************************************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;}),"./foundation.util.imageLoader":/*!****************************************************************************************************************************************************************************************************************!*\ | |
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.imageLoader"],"amd":"./foundation.util.imageLoader","commonjs":"./foundation.util.imageLoader","commonjs2":"./foundation.util.imageLoader"} ***! | |
\****************************************************************************************************************************************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;}),"./foundation.util.mediaQuery":/*!************************************************************************************************************************************************************************************************************!*\ | |
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.mediaQuery"],"amd":"./foundation.util.mediaQuery","commonjs":"./foundation.util.mediaQuery","commonjs2":"./foundation.util.mediaQuery"} ***! | |
\************************************************************************************************************************************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;}),"./js/entries/plugins/foundation.equalizer.js":/*!****************************************************!*\ | |
!*** ./js/entries/plugins/foundation.equalizer.js ***! | |
\****************************************************//*!exports provided: Foundation, Equalizer*/(function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);var _foundation_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(/*!./foundation.core*/"./foundation.core");var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);__webpack_require__.d(__webpack_exports__,"Foundation",function(){return _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"];});var _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(/*!../../foundation.equalizer*/"./js/foundation.equalizer.js");__webpack_require__.d(__webpack_exports__,"Equalizer",function(){return _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__["Equalizer"];});_foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"].plugin(_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__["Equalizer"],'Equalizer');}),"./js/foundation.equalizer.js":/*!************************************!*\ | |
!*** ./js/foundation.equalizer.js ***! | |
\************************************//*!exports provided: Equalizer*/(function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"Equalizer",function(){return Equalizer;});var jquery__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(/*!jquery*/"jquery");var jquery__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(/*!./foundation.util.mediaQuery*/"./foundation.util.mediaQuery");var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(/*!./foundation.util.imageLoader*/"./foundation.util.imageLoader");var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__);var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(/*!./foundation.core.utils*/"./foundation.core.utils");var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(/*!./foundation.core.plugin*/"./foundation.core.plugin");var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__);function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);} | |
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} | |
function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}} | |
function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;} | |
function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);} | |
function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;} | |
function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);} | |
function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);} | |
function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);} | |
var Equalizer=function(_Plugin){_inherits(Equalizer,_Plugin);function Equalizer(){_classCallCheck(this,Equalizer);return _possibleConstructorReturn(this,_getPrototypeOf(Equalizer).apply(this,arguments));} | |
_createClass(Equalizer,[{key:"_setup",value:function _setup(element,options){this.$element=element;this.options=jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({},Equalizer.defaults,this.$element.data(),options);this.className='Equalizer';this._init();}},{key:"_init",value:function _init(){var eqId=this.$element.attr('data-equalizer')||'';var $watched=this.$element.find("[data-equalizer-watch=\"".concat(eqId,"\"]"));_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"]._init();this.$watched=$watched.length?$watched:this.$element.find('[data-equalizer-watch]');this.$element.attr('data-resize',eqId||Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__["GetYoDigits"])(6,'eq'));this.$element.attr('data-mutate',eqId||Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__["GetYoDigits"])(6,'eq'));this.hasNested=this.$element.find('[data-equalizer]').length>0;this.isNested=this.$element.parentsUntil(document.body,'[data-equalizer]').length>0;this.isOn=false;this._bindHandler={onResizeMeBound:this._onResizeMe.bind(this),onPostEqualizedBound:this._onPostEqualized.bind(this)};var imgs=this.$element.find('img');var tooSmall;if(this.options.equalizeOn){tooSmall=this._checkMQ();jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery',this._checkMQ.bind(this));}else{this._events();} | |
if(typeof tooSmall!=='undefined'&&tooSmall===false||typeof tooSmall==='undefined'){if(imgs.length){Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__["onImagesLoaded"])(imgs,this._reflow.bind(this));}else{this._reflow();}}}},{key:"_pauseEvents",value:function _pauseEvents(){this.isOn=false;this.$element.off({'.zf.equalizer':this._bindHandler.onPostEqualizedBound,'resizeme.zf.trigger':this._bindHandler.onResizeMeBound,'mutateme.zf.trigger':this._bindHandler.onResizeMeBound});}},{key:"_onResizeMe",value:function _onResizeMe(e){this._reflow();}},{key:"_onPostEqualized",value:function _onPostEqualized(e){if(e.target!==this.$element[0]){this._reflow();}}},{key:"_events",value:function _events(){var _this=this;this._pauseEvents();if(this.hasNested){this.$element.on('postequalized.zf.equalizer',this._bindHandler.onPostEqualizedBound);}else{this.$element.on('resizeme.zf.trigger',this._bindHandler.onResizeMeBound);this.$element.on('mutateme.zf.trigger',this._bindHandler.onResizeMeBound);} | |
this.isOn=true;}},{key:"_checkMQ",value:function _checkMQ(){var tooSmall=!_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__["MediaQuery"].is(this.options.equalizeOn);if(tooSmall){if(this.isOn){this._pauseEvents();this.$watched.css('height','auto');}}else{if(!this.isOn){this._events();}} | |
return tooSmall;}},{key:"_killswitch",value:function _killswitch(){return;}},{key:"_reflow",value:function _reflow(){if(!this.options.equalizeOnStack){if(this._isStacked()){this.$watched.css('height','auto');return false;}} | |
if(this.options.equalizeByRow){this.getHeightsByRow(this.applyHeightByRow.bind(this));}else{this.getHeights(this.applyHeight.bind(this));}}},{key:"_isStacked",value:function _isStacked(){if(!this.$watched[0]||!this.$watched[1]){return true;} | |
return this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top;}},{key:"getHeights",value:function getHeights(cb){var heights=[];for(var i=0,len=this.$watched.length;i<len;i++){this.$watched[i].style.height='auto';heights.push(this.$watched[i].offsetHeight);} | |
cb(heights);}},{key:"getHeightsByRow",value:function getHeightsByRow(cb){var lastElTopOffset=this.$watched.length?this.$watched.first().offset().top:0,groups=[],group=0;groups[group]=[];for(var i=0,len=this.$watched.length;i<len;i++){this.$watched[i].style.height='auto';var elOffsetTop=jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$watched[i]).offset().top;if(elOffsetTop!=lastElTopOffset){group++;groups[group]=[];lastElTopOffset=elOffsetTop;} | |
groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);} | |
for(var j=0,ln=groups.length;j<ln;j++){var heights=jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[j]).map(function(){return this[1];}).get();var max=Math.max.apply(null,heights);groups[j].push(max);} | |
cb(groups);}},{key:"applyHeight",value:function applyHeight(heights){var max=Math.max.apply(null,heights);this.$element.trigger('preequalized.zf.equalizer');this.$watched.css('height',max);this.$element.trigger('postequalized.zf.equalizer');}},{key:"applyHeightByRow",value:function applyHeightByRow(groups){this.$element.trigger('preequalized.zf.equalizer');for(var i=0,len=groups.length;i<len;i++){var groupsILength=groups[i].length,max=groups[i][groupsILength-1];if(groupsILength<=2){jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][0][0]).css({'height':'auto'});continue;} | |
this.$element.trigger('preequalizedrow.zf.equalizer');for(var j=0,lenJ=groupsILength-1;j<lenJ;j++){jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][j][0]).css({'height':max});} | |
this.$element.trigger('postequalizedrow.zf.equalizer');} | |
this.$element.trigger('postequalized.zf.equalizer');}},{key:"_destroy",value:function _destroy(){this._pauseEvents();this.$watched.css('height','auto');}}]);return Equalizer;}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_4__["Plugin"]);Equalizer.defaults={equalizeOnStack:false,equalizeByRow:false,equalizeOn:''};}),6:/*!**********************************************************!*\ | |
!*** multi ./js/entries/plugins/foundation.equalizer.js ***! | |
\**********************************************************//*!no static exports found*/(function(module,exports,__webpack_require__){module.exports=__webpack_require__(/*!/Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.equalizer.js*/"./js/entries/plugins/foundation.equalizer.js");}),"jquery":/*!********************************************************************************************!*\ | |
!*** external {"root":["jQuery"],"amd":"jquery","commonjs":"jquery","commonjs2":"jquery"} ***! | |
\********************************************************************************************//*!no static exports found*/(function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_jquery__;})});}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment