📄 paneleffect.js
字号:
/**Copyright (c) 2006, Yahoo! Inc. All rights reserved.Code licensed under the BSD License:http://developer.yahoo.net/yui/license.txt* @class* A collection of ContainerEffect classes specifically used for animating Panels.*/YAHOO.widget.PanelEffect = function() { }/*** A pre-configured ContainerEffect instance that can be used for expanding the Panel body vertically* @param {Panel} The Panel object to animate* @param {float} The duration of the animation* @type ContainerEffect*/YAHOO.widget.PanelEffect.BODY_EXPAND_V = function(overlay, dur) { var offsetHeight = overlay.body.offsetHeight; var padTop = YAHOO.util.Dom.getStyle(overlay.body, "paddingTop"); var padBottom = YAHOO.util.Dom.getStyle(overlay.body, "paddingBottom"); var expand = new YAHOO.widget.ContainerEffect(overlay, { attributes:{height: {from:0, to:(offsetHeight-parseInt(padTop)-parseInt(padBottom))}}, duration:dur, method:YAHOO.util.Easing.easeIn }, { attributes:{height: {to:0}}, duration:dur, method:YAHOO.util.Easing.easeOut}, overlay.body ); expand.handleTweenAnimateIn = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); if (YAHOO.util.Dom.getStyle(obj.overlay.element, "visibility") == "hidden") { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "visible"); } } expand.handleCompleteAnimateOut = function(type, args, obj) { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "hidden"); YAHOO.util.Dom.setStyle(obj.overlay.body, "height", "auto"); }; expand.handleTweenAnimateOut = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); } expand.init(); return expand;};/*** A pre-configured ContainerEffect instance that can be used for expanding the Panel horizontally* @param {Panel} The Panel object to animate* @param {float} The duration of the animation* @type ContainerEffect*/YAHOO.widget.PanelEffect.EXPAND_H = function(overlay, dur) { var initialWidth = YAHOO.util.Dom.getStyle(overlay.innerElement, "width"); var offsetWidth = overlay.innerElement.offsetWidth; var offsetHeight = overlay.innerElement.offsetHeight; var expand = new YAHOO.widget.ContainerEffect(overlay, { attributes:{width: {from:0, to:parseInt(initialWidth), unit:"em" }}, duration:dur, method:YAHOO.util.Easing.easeIn }, { attributes:{width: {to:0, unit:"em"}}, duration:dur, method:YAHOO.util.Easing.easeOut}, overlay.innerElement ); expand.handleStartAnimateIn = function(type,args,obj) { var w = obj.cachedOffsetWidth || obj.overlay.innerElement.offsetWidth; if (obj.overlay.header) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.header, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.header, "paddingRight"); obj.overlay.header.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } if (obj.overlay.body) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.body, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.body, "paddingRight"); obj.overlay.body.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } if (obj.overlay.footer) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.footer, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.footer, "paddingRight"); obj.overlay.footer.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } } expand.handleTweenAnimateIn = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); if (YAHOO.util.Dom.getStyle(obj.overlay.element, "visibility") == "hidden") { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "visible"); } } expand.handleCompleteAnimateIn = function(type,args,obj) { YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "height", "auto"); YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "width", initialWidth); if (obj.overlay.header) { obj.overlay.header.style.width = "auto"; } if (obj.overlay.body) { obj.overlay.body.style.width = "auto"; } if (obj.overlay.footer) { obj.overlay.footer.style.width = "auto"; } } expand.handleStartAnimateOut = function(type,args,obj) { var w = obj.overlay.innerElement.offsetWidth; obj.cachedOffsetWidth = w; if (obj.overlay.header) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.header, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.header, "paddingRight"); obj.overlay.header.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } if (obj.overlay.body) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.body, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.body, "paddingRight"); obj.overlay.body.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } if (obj.overlay.footer) { var padLeft = YAHOO.util.Dom.getStyle(obj.overlay.footer, "paddingLeft"); var padRight = YAHOO.util.Dom.getStyle(obj.overlay.footer, "paddingRight"); obj.overlay.footer.style.width = (w-parseInt(padLeft)-parseInt(padRight)) + "px"; } } expand.handleTweenAnimateOut = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); } expand.handleCompleteAnimateOut = function(type, args, obj) { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "hidden"); YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "height", "auto"); YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "width", initialWidth); if (obj.overlay.header) { obj.overlay.header.style.width = "auto"; } if (obj.overlay.body) { obj.overlay.body.style.width = "auto"; } if (obj.overlay.footer) { obj.overlay.footer.style.width = "auto"; } }; expand.init(); return expand;};/*** A pre-configured ContainerEffect instance that can be used for expanding the Panel vertically* @param {Panel} The Panel object to animate* @param {float} The duration of the animation* @type ContainerEffect*/YAHOO.widget.PanelEffect.EXPAND_V = function(overlay, dur) { var offsetWidth = overlay.innerElement.offsetWidth; var offsetHeight = overlay.innerElement.offsetHeight; var expand = new YAHOO.widget.ContainerEffect(overlay, { attributes:{height: {from:0, to:offsetHeight}}, duration:dur, method:YAHOO.util.Easing.easeIn }, { attributes:{height: {to:0}}, duration:dur, method:YAHOO.util.Easing.easeOut}, overlay.innerElement ); expand.handleTweenAnimateIn = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); if (YAHOO.util.Dom.getStyle(obj.overlay.element, "visibility") == "hidden") { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "visible"); } } expand.handleCompleteAnimateIn = function(type,args,obj) { YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "height", "auto"); } expand.handleStartAnimateOut = function(type,args,obj) { var w = obj.overlay.innerElement.offsetWidth; obj.cachedOffsetWidth = w; } expand.handleTweenAnimateOut = function(type, args, obj) { obj.overlay.cfg.refireEvent("underlay"); obj.overlay.cfg.refireEvent("iframe"); } expand.handleCompleteAnimateOut = function(type, args, obj) { YAHOO.util.Dom.setStyle(obj.overlay.element, "visibility", "hidden"); YAHOO.util.Dom.setStyle(obj.overlay.innerElement, "height", "auto"); if (obj.overlay.header) { obj.overlay.header.style.width = "auto"; } if (obj.overlay.body) { obj.overlay.body.style.width = "auto"; } if (obj.overlay.footer) { obj.overlay.footer.style.width = "auto"; } }; expand.init(); return expand;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -