mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-06-30 14:40:34 +02:00
moving all - non ancient ;-) - js files to api/js
This commit is contained in:
145
api/js/dhtmlxMenu/sources/ext/dhtmlxmenu_effects.js
Normal file
145
api/js/dhtmlxMenu/sources/ext/dhtmlxmenu_effects.js
Normal file
@ -0,0 +1,145 @@
|
||||
//v.3.6 build 131108
|
||||
|
||||
/*
|
||||
Copyright DHTMLX LTD. http://www.dhtmlx.com
|
||||
You allowed to use this component or parts of it under GPL terms
|
||||
To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com
|
||||
*/
|
||||
/* effects: opacity, slide */
|
||||
|
||||
dhtmlXMenuObject.prototype.enableEffect = function(name, maxOpacity, effectSpeed) {
|
||||
|
||||
this._menuEffect = (name=="opacity"||name=="slide"||name=="slide+"?name:false);
|
||||
|
||||
for (var a in this.idPull) {
|
||||
if (a.search(/polygon/) === 0) {
|
||||
this._pOpacityApply(a,(_isIE?100:1));
|
||||
this.idPull[a].style.height = "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// opacity max value
|
||||
this._pOpMax = (typeof(maxOpacity)=="undefined"?100:maxOpacity)/(_isIE?1:100);
|
||||
|
||||
// opacity css styles
|
||||
this._pOpStyleName = (_isIE?"filter":"opacity");
|
||||
this._pOpStyleValue = (_isIE?"progid:DXImageTransform.Microsoft.Alpha(Opacity=#)":"#");
|
||||
|
||||
|
||||
// count of steps to open full polygon
|
||||
this._pSlSteps = (_isIE?10:20);
|
||||
|
||||
// timeout to open polygon
|
||||
this._pSlTMTimeMax = effectSpeed||50;
|
||||
|
||||
}
|
||||
|
||||
// extended show
|
||||
dhtmlXMenuObject.prototype._showPolygonEffect = function(pId) {
|
||||
this._pShowHide(pId, true);
|
||||
};
|
||||
|
||||
// extended hide
|
||||
dhtmlXMenuObject.prototype._hidePolygonEffect = function(pId) {
|
||||
this._pShowHide(pId, false);
|
||||
};
|
||||
|
||||
// apply opacity css
|
||||
dhtmlXMenuObject.prototype._pOpacityApply = function(pId, val) {
|
||||
this.idPull[pId].style[this._pOpStyleName] = String(this._pOpStyleValue).replace("#", val||this.idPull[pId]._op);
|
||||
};
|
||||
|
||||
dhtmlXMenuObject.prototype._pShowHide = function(pId, mode) {
|
||||
|
||||
if (!this.idPull) return;
|
||||
|
||||
// check if mode in progress
|
||||
if (this.idPull[pId]._tmShow != null) {
|
||||
if ((this.idPull[pId]._step_h > 0 && mode == true) || (this.idPull[pId]._step_h < 0 && mode == false)) return;
|
||||
window.clearTimeout(this.idPull[pId]._tmShow);
|
||||
this.idPull[pId]._tmShow = null;
|
||||
this.idPull[pId]._max_h = null;
|
||||
}
|
||||
|
||||
if (mode == false && (this.idPull[pId].style.visibility == "hidden" || this.idPull[pId].style.display == "none")) return;
|
||||
|
||||
if (mode == true && this.idPull[pId].style.display == "none") {
|
||||
this.idPull[pId].style.visibility = "hidden";
|
||||
this.idPull[pId].style.display = "";
|
||||
}
|
||||
|
||||
// init values or show-hide revert
|
||||
if (this.idPull[pId]._max_h == null) {
|
||||
|
||||
this.idPull[pId]._max_h = parseInt(this.idPull[pId].offsetHeight);
|
||||
this.idPull[pId]._h = (mode==true?0:this.idPull[pId]._max_h);
|
||||
this.idPull[pId]._step_h = Math.round(this.idPull[pId]._max_h/this._pSlSteps)*(mode==true?1:-1);
|
||||
if (this.idPull[pId]._step_h == 0) return;
|
||||
this.idPull[pId]._step_tm = Math.round(this._pSlTMTimeMax/this._pSlSteps);
|
||||
|
||||
if (this._menuEffect == "slide+" || this._menuEffect == "opacity") {
|
||||
this.idPull[pId].op_tm = this.idPull[pId]._step_tm;
|
||||
this.idPull[pId].op_step = (this._pOpMax/this._pSlSteps)*(mode==true?1:-1);
|
||||
if (_isIE) this.idPull[pId].op_step = Math.round(this.idPull[pId].op_step);
|
||||
this.idPull[pId]._op = (mode==true?0:this._pOpMax);
|
||||
this._pOpacityApply(pId);
|
||||
} else {
|
||||
this.idPull[pId]._op = (_isIE?100:1);
|
||||
this._pOpacityApply(pId);
|
||||
}
|
||||
|
||||
// show first time
|
||||
if (this._menuEffect.search(/slide/) === 0) this.idPull[pId].style.height = "0px";
|
||||
this.idPull[pId].style.visibility = "visible";
|
||||
|
||||
}
|
||||
|
||||
// run cycle
|
||||
this._pEffectSet(pId, this.idPull[pId]._h+this.idPull[pId]._step_h);
|
||||
|
||||
}
|
||||
|
||||
dhtmlXMenuObject.prototype._pEffectSet = function(pId, t) {
|
||||
|
||||
if (!this.idPull) return;
|
||||
|
||||
if (this.idPull[pId]._tmShow) window.clearTimeout(this.idPull[pId]._tmShow);
|
||||
|
||||
// check and apply next step
|
||||
this.idPull[pId]._h = Math.max(0,Math.min(t,this.idPull[pId]._max_h));
|
||||
if (this._menuEffect.search(/slide/) === 0) this.idPull[pId].style.height = this.idPull[pId]._h+"px";
|
||||
|
||||
t += this.idPull[pId]._step_h;
|
||||
|
||||
if (this._menuEffect == "slide+" || this._menuEffect == "opacity") {
|
||||
this.idPull[pId]._op = Math.max(0,Math.min(this._pOpMax,this.idPull[pId]._op+this.idPull[pId].op_step));
|
||||
this._pOpacityApply(pId);
|
||||
}
|
||||
|
||||
if ((this.idPull[pId]._step_h > 0 && t <= this.idPull[pId]._max_h) || (this.idPull[pId]._step_h < 0 && t >= 0)) {
|
||||
// continue
|
||||
var k = this;
|
||||
this.idPull[pId]._tmShow = window.setTimeout(function(){k._pEffectSet(pId,t);}, this.idPull[pId]._step_tm);
|
||||
} else {
|
||||
|
||||
// clear height
|
||||
if (this._menuEffect.search(/slide/) === 0) this.idPull[pId].style.height = "";
|
||||
|
||||
// hide completed
|
||||
if (this.idPull[pId]._step_h < 0) this.idPull[pId].style.visibility = "hidden";
|
||||
|
||||
if (this._menuEffect == "slide+" || this._menuEffect == "opacity") {
|
||||
this.idPull[pId]._op = (this.idPull[pId]._step_h<0?(_isIE?100:1):this._pOpMax);
|
||||
this._pOpacityApply(pId);
|
||||
}
|
||||
|
||||
// clear values
|
||||
this.idPull[pId]._tmShow = null;
|
||||
this.idPull[pId]._h = null;
|
||||
this.idPull[pId]._max_h = null;
|
||||
///this.idPull[pId]._step_h = null;
|
||||
this.idPull[pId]._step_tm = null;
|
||||
}
|
||||
|
||||
};
|
Reference in New Issue
Block a user