📄 ygddswap.js
字号:
/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */
/**
* @class a ygDDFramed implementation that swaps positions with the target when
* dropped
*
* @extends YAHOO.util.DDProxy
* @constructor
* @param {String} id the id of the linked element
* @param {String} sGroup the group of related DragDrop items
*/
function ygDDSwap(id, sGroup) {
this.swapInit(id, sGroup);
}
ygDDSwap.prototype = new YAHOO.util.DDProxy();
ygDDSwap.prototype.swapInit = function(id, sGroup) {
if (!id) { return; }
this.init(id, sGroup);
this.initFrame();
this.logger = new ygLogger("ygDDSwap");
/**
* css style to use when items are not being hovered over.
*/
this.offClass = "testSquare";
/**
* css style to use when hovered over
*/
this.onClass = "testSquareOn";
/**
* cache of the elements we have changed the style so we can restore it
* later
*/
this.els = [];
};
ygDDSwap.prototype.onDragDrop = function(e, id) {
this.swap(this.getEl(), YAHOO.util.DDM.getElement(id));
};
ygDDSwap.prototype.swap = function(el1, el2) {
this.logger.debug(this.id + " onDragDrop swap");
// Swap out the position of the two objects. This only works for absolutely
// positioned elements. See {@link ygDDMy} for an implementation that
// works for relatively positioned elements
var s1 = el1.style;
var s2 = el2.style;
var l = s1.left;
var t = s1.top;
s1.left = s2.left;
s1.top = s2.top;
s2.left = l;
s2.top = t;
};
ygDDSwap.prototype.onDragEnter = function(e, id) {
this.logger.debug(this.id + " dragEnter " + id);
// store a ref so we can restore the style later
this.els[id] = true;
// set the mouseover style
var el = YAHOO.util.DDM.getElement(id);
if (el.className != this.onClass) {
el.className = this.onClass;
}
};
ygDDSwap.prototype.onDragOut = function(e, id) {
this.logger.debug(this.id + " dragOut " + id);
// restore the style
YAHOO.util.DDM.getElement(id).className = this.offClass;
};
ygDDSwap.prototype.endDrag = function(e) {
this.logger.debug(this.id + " endDrag");
this.resetStyles();
};
ygDDSwap.prototype.resetStyles = function() {
// restore all element styles
for (var i in this.els) {
var el = YAHOO.util.DDM.getElement(i);
if (el) {
el.className = this.offClass;
}
}
};
ygDDSwap.prototype.onDrag = function(e) { };
ygDDSwap.prototype.onDragOver = function(e) { };
//-------------------------------------------------------------------------
// Intersect mode
//-------------------------------------------------------------------------
ygDDSwap_i.prototype = new ygDDSwap();
function ygDDSwap_i(id, sGroup) {
this.swapInit(id, sGroup);
}
ygDDSwap_i.prototype.onDragDrop = function(e, dds) {
// this.logger.debug(this.id + " onDragDrop swap");
var dd = YAHOO.util.DDM.getBestMatch(dds);
this.swap(this.getEl(), dd.getEl());
};
ygDDSwap_i.prototype.onDragEnter = function(e, dds) { };
ygDDSwap_i.prototype.onDragOver = function(e, dds) {
// this.logger.debug(this.id + " dragEnter " + id);
this.resetStyles();
var dd = YAHOO.util.DDM.getBestMatch(dds);
this.els[dd.id] = true;
// set the mouseover style
var el = dd.getEl();
if (el.className != this.onClass) {
el.className = this.onClass;
}
};
ygDDSwap_i.prototype.onDragOut = function(e, dds) {
// this.logger.debug(this.id + " dragOut " + id);
// restore the style
for (var i=0; i<dds.length; ++i) {
dds[i].getEl().className = this.offClass;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -