[interchange/DEB_5_10_0] Add missing source for jQuery-Equal-Height-Columns.
Stefan Hornburg
interchange-cvs at icdevgroup.org
Sat Apr 23 08:10:37 UTC 2016
commit 37e543cbbc77078baf4c943b3b566924109ce778
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Sat Apr 23 10:09:30 2016 +0200
Add missing source for jQuery-Equal-Height-Columns.
.../missing-sources/jquery.equalheightcolumns.js | 123 ++++++++++++++++++++
1 files changed, 123 insertions(+), 0 deletions(-)
---
diff --git a/debian/missing-sources/jquery.equalheightcolumns.js b/debian/missing-sources/jquery.equalheightcolumns.js
new file mode 100644
index 0000000..f027fd2
--- /dev/null
+++ b/debian/missing-sources/jquery.equalheightcolumns.js
@@ -0,0 +1,123 @@
+/*global jQuery */
+/*!
+* equalHeightColumns.js 1.2
+* https://github.com/PaulSpr/jQuery-Equal-Height-Columns
+*
+* Copyright 2014, Paul Sprangers http://paulsprangers.com
+* Released under the WTFPL license
+* http://www.wtfpl.net
+*
+* Date: Sat Dec 13 11:30:00 2014 +0100
+*/
+
+(function( $ ){
+
+ $.fn.equalHeightColumns = function( options ) {
+
+ defaults = {
+ minWidth: -1, // Won't resize unless window is wider than this value
+ maxWidth: 99999, // Won't resize unless window is narrower than this value
+ setHeightOn: 'min-height', // The CSS attribute on which the equal height is set. Usually height or min-height
+ defaultVal: 0, // Default value (for resetting columns before calculation of the maximum height) for the CSS attribute defined via setHeightOn, e.g. 'auto' for 'height' or 0 for 'minHeight'
+ equalizeRows: false, // Give every column in indiviual rows even height. Every row can have a different height this way
+ checkHeight: 'height' // Which height to check, using box-sizing: border-box, innerHeight is probably more appropriate
+ };
+
+ var $this = $(this); // store the object
+ options = $.extend( {}, defaults, options ); // merge options
+
+ // Resize height of the columns
+ var resizeHeight = function () {
+
+ // Get window width
+ var windowWidth = $(window).width();
+ var currentElements = Array();
+
+ // Check to see if the current browser width falls within the set minWidth and maxWidth
+ if( options.minWidth < windowWidth && options.maxWidth > windowWidth ){
+ var height = 0;
+ var highest = 0;
+ var yPos = 0;
+
+ // Reset heights
+ $this.css( options.setHeightOn, options.defaultVal );
+
+ // Figure out the highest element
+ $this.each( function(){
+
+ if( options.equalizeRows ){
+ // Check if y position of the element is bigger, if so, it's on another row.
+ // Make sure that the height is only set relative to elements in the same row.
+ var elYPos = $(this).position().top;
+
+ if( elYPos != yPos ){
+ // new row, so set the height of the elements of the previous row
+ if( currentElements.length > 0 ) {
+ $(currentElements).css(options.setHeightOn, highest);
+ // clear the array and reset values for the new row
+ highest = 0;
+ currentElements = [];
+ }
+ // get element elYPos again since it might have changed because of the resize
+ yPos = $(this).position().top;
+
+ }
+
+ currentElements.push(this);
+ }
+
+ // do the height check and if it's the highest, set it as such
+ height = $(this)[options.checkHeight]();
+
+ if( height > highest ){
+ highest = height;
+ }
+
+ } );
+
+ if( !options.equalizeRows ){
+ // Set that height on the elements at once
+ $this.css( options.setHeightOn, highest );
+ }
+ else{
+ // set height on elements in last row
+ $(currentElements).css( options.setHeightOn, highest );
+ }
+
+ }
+ else{
+ // Add check so this doesn't have to happen everytime
+ $this.css(options.setHeightOn, options.defaultVal);
+ }
+ };
+
+ // Call once to set initially
+ resizeHeight();
+
+ // Call on resize. Opera debounces their resize by default.
+ $(window).resize(resizeHeight);
+
+ // Also check if any images are present and recalculate when they load
+ // there might be an optimization opportunity here
+ $this.find('img').load( resizeHeight );
+
+ // If afterLoading is defined, add a load event to the selector
+ if ( typeof options.afterLoading !== 'undefined' ) {
+ $this.find(options.afterLoading).load( resizeHeight );
+ }
+
+ // If afterTimeout is defined use it a the timeout value
+ if ( typeof options.afterTimeout !== 'undefined' ) {
+ setTimeout(function(){
+ resizeHeight();
+
+ // check afterLoading again, to make sure that dynamically added nodes are present
+ if ( typeof options.afterLoading !== 'undefined' ) {
+ $this.find(options.afterLoading).load( resizeHeight );
+ }
+ }, options.afterTimeout);
+ }
+
+ };
+
+})( jQuery );
More information about the interchange-cvs
mailing list