Imported the innerHeight and outerHeight methods from the Dimensions plugin.
authorJohn Resig <jeresig@gmail.com>
Sat, 15 Mar 2008 18:53:40 +0000 (18:53 +0000)
committerJohn Resig <jeresig@gmail.com>
Sat, 15 Mar 2008 18:53:40 +0000 (18:53 +0000)
src/offset.js

index b29fcc7..4cd58cf 100644 (file)
@@ -96,3 +96,35 @@ jQuery.fn.offset = function() {
 
        return results;
 };
+
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each(["Height", "Width"], function(i, name){
+
+       var tl = name == "Height" ? "Top"    : "Left",  // top or left
+               br = name == "Height" ? "Bottom" : "Right"; // bottom or right
+       
+       // innerHeight and innerWidth
+       jQuery.fn["inner" + name] = function(){
+               return this[ name.toLowerCase() ]() + 
+                       num(this, "padding" + tl) + 
+                       num(this, "padding" + br);
+       };
+       
+       // outerHeight and outerWidth
+       jQuery.fn["outer" + name] = function(options) {
+               options = jQuery.extend({ margin: false }, options);
+               
+               return this["inner" + name]() + 
+                       num(this, "border" + tl + "Width") +
+                       num(this, "border" + br + "Width") +
+                       (options.margin ? 
+                               num(this, "margin" + tl) + num(this, "margin" + br) :
+                               0);
+       };
+       
+});
+
+function num(elem, prop) {
+       elem = elem.jquery ? elem[0] : elem;
+       return elem && parseInt( jQuery.curCSS(elem, prop, true) ) || 0;
+}
\ No newline at end of file