fixed the resizable text area with IE problem fixed the ad space with IE problem merged the 7.2.0 and 7.1.4 change logs
106 lines
3.3 KiB
JavaScript
106 lines
3.3 KiB
JavaScript
|
|
/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */
|
|
|
|
/**
|
|
* @extends YAHOO.util.DragDrop
|
|
* @constructor
|
|
* @param {String} handle the id of the element that will cause the resize
|
|
* @param {String} panel id of the element to resize
|
|
* @param {String} sGroup the group of related DragDrop items
|
|
*/
|
|
YAHOO.example.DDResize = function(panelElId, nwHandle,
|
|
neHandle, seHandle, swHandle, sGroup, config) {
|
|
if (panelElId) {
|
|
this.init(panelElId, sGroup, config);
|
|
this.nwHandle = nwHandle;
|
|
this.neHandle = neHandle;
|
|
this.seHandle = seHandle;
|
|
this.swHandle = swHandle;
|
|
this.setHandleElId(nwHandle);
|
|
this.setHandleElId(neHandle);
|
|
this.setHandleElId(seHandle);
|
|
this.setHandleElId(swHandle);
|
|
this.logger = this.logger || YAHOO;
|
|
}
|
|
};
|
|
|
|
// YAHOO.example.DDResize.prototype = new YAHOO.util.DragDrop();
|
|
YAHOO.extend(YAHOO.example.DDResize, YAHOO.util.DragDrop);
|
|
|
|
YAHOO.example.DDResize.prototype.lockAspectRatio = false;
|
|
|
|
YAHOO.example.DDResize.prototype.onMouseDown = function(e) {
|
|
var panel = this.getEl();
|
|
this.startWidth = panel.offsetWidth;
|
|
this.startHeight = panel.offsetHeight;
|
|
this.panelStartPos = YAHOO.util.Dom.getXY(panel);
|
|
|
|
this.aspectRatio = this.startWidth/this.startHeight;
|
|
this.direction = this.getDirection(YAHOO.util.Event.getTarget(e, true).id);
|
|
this.logger.log("direction " + this.direction);
|
|
|
|
this.startPos = [YAHOO.util.Event.getPageX(e),
|
|
YAHOO.util.Event.getPageY(e)];
|
|
};
|
|
|
|
YAHOO.example.DDResize.prototype.onDrag = function(e) {
|
|
var newPos = [YAHOO.util.Event.getPageX(e),
|
|
YAHOO.util.Event.getPageY(e)];
|
|
|
|
var offsetX = newPos[0] - this.startPos[0];
|
|
var offsetY = (this.lockAspectRatio) ? offsetX : newPos[1] - this.startPos[1];
|
|
|
|
var newWidth = Math.max(this.startWidth + offsetX, 10);
|
|
var newHeight = Math.max(this.startHeight + offsetY, 10);
|
|
|
|
var panel = this.getEl();
|
|
|
|
|
|
var panelPos = YAHOO.util.Dom.getXY(panel);
|
|
var movePos = [this.panelStartPos[0], this.panelStartPos[1]];
|
|
var doMove = false;
|
|
|
|
if (this.direction == "nw" || this.direction == "sw") {
|
|
movePos[0] = this.panelStartPos[0] + offsetX;
|
|
newWidth = Math.max(this.startWidth - offsetX, 10);
|
|
doMove = true;
|
|
}
|
|
|
|
if (this.direction == "ne" || this.direction == "nw") {
|
|
offsetY = newPos[1] - this.startPos[1];
|
|
offsetX = offsetY;
|
|
movePos[1] = this.panelStartPos[1] + offsetY;
|
|
newHeight = Math.max(this.startHeight - offsetY, 10);
|
|
newWidth = Math.max(this.startWidth - offsetX, 10);
|
|
doMove = true;
|
|
}
|
|
|
|
|
|
switch (this.direction) {
|
|
case "nw":
|
|
|
|
}
|
|
|
|
|
|
if (doMove) {
|
|
YAHOO.util.Dom.setXY(panel, movePos);
|
|
}
|
|
|
|
panel.style.width = newWidth + "px";
|
|
panel.style.height = newHeight + "px";
|
|
};
|
|
|
|
YAHOO.example.DDResize.prototype.getDirection = function(handle) {
|
|
if (handle == this.nwHandle) {
|
|
return "nw";
|
|
} else if (handle == this.neHandle) {
|
|
return "ne";
|
|
} else if (handle == this.seHandle) {
|
|
return "se";
|
|
} else if (handle == this.swHandle) {
|
|
return "sw";
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|