Mercurial > defr > drupal > core
diff misc/textarea.js @ 1:c1f4ac30525a 6.0
Drupal 6.0
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Tue, 23 Dec 2008 14:28:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/misc/textarea.js Tue Dec 23 14:28:28 2008 +0100 @@ -0,0 +1,36 @@ +// $Id: textarea.js,v 1.22 2008/01/17 19:31:56 goba Exp $ + +Drupal.behaviors.textarea = function(context) { + $('textarea.resizable:not(.textarea-processed)', context).each(function() { + // Avoid non-processed teasers. + if ($(this).is(('textarea.teaser:not(.teaser-processed)'))) { + return false; + } + var textarea = $(this).addClass('textarea-processed'), staticOffset = null; + + // When wrapping the text area, work around an IE margin bug. See: + // http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout + $(this).wrap('<div class="resizable-textarea"><span></span></div>') + .parent().append($('<div class="grippie"></div>').mousedown(startDrag)); + + var grippie = $('div.grippie', $(this).parent())[0]; + grippie.style.marginRight = (grippie.offsetWidth - $(this)[0].offsetWidth) +'px'; + + function startDrag(e) { + staticOffset = textarea.height() - e.pageY; + textarea.css('opacity', 0.25); + $(document).mousemove(performDrag).mouseup(endDrag); + return false; + } + + function performDrag(e) { + textarea.height(Math.max(32, staticOffset + e.pageY) + 'px'); + return false; + } + + function endDrag(e) { + $(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag); + textarea.css('opacity', 1); + } + }); +};