By Jared F
Has 7 other scripts.
// ==UserScript==
// @name EZ resize
// @namespace http://userscripts.org/users/25394
// @description resize textareas with ease
// @include *
// ==/UserScript==
(function(){
var resizing=null;
var txts=document.getElementsByTagName('textarea')
function findpos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
function mousepos(e){
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
return [posx,posy];
}
function mainmove(e){
if (resizing){
mpos=mousepos(e)
pos=findpos(resizing)
resizing.style.width=(mpos[0]-pos[0])+'px';
if (resizing.type=="textarea"){
resizing.style.height=(mpos[1]-pos[1])+'px';
}
resizing.blur();
}
}
document.addEventListener('mouseup',function(){resizing=null;},false)
document.addEventListener('mousemove', mainmove, false)
for (var i=0;i<txts.length;i++){
var text=txts[i];
text.addEventListener('mousedown',function(e){
pos=findpos(this)
mpos=mousepos(e)
if (mpos[0]>pos[0]+this.offsetWidth-10){
if (mpos[1]>pos[1]+this.offsetHeight-10){
resizing=this;
this.blur();
}
}
},true);
text.addEventListener('mousemove',function(e){
pos=findpos(this)
mpos=mousepos(e)
if (mpos[0]>pos[0]+this.offsetWidth-10){
if (mpos[1]>pos[1]+this.offsetHeight-10){
this.blur();
this.style.cursor="nw-resize";return
}
}
if (!resizing){
this.style.cursor="auto";
}
},true);
}
var imps=document.getElementsByTagName('input');
for (var i=0;i<imps.length;i++){
input=imps[i];
if (input.type=="text" || !input.type){
input.addEventListener('mousedown',function(e){
pos=findpos(this)
mpos=mousepos(e)
if (mpos[0]>pos[0]+this.offsetWidth-10){
resizing=this;
this.blur();
}
},true);
input.addEventListener('mousemove',function(e){
pos=findpos(this)
mpos=mousepos(e)
if (mpos[0]>pos[0]+this.offsetWidth-10){
this.blur();
this.style.cursor="w-resize";return
}
if (!resizing){
this.style.cursor="auto";
}
},true);
}
}
})()