📄 effects.js
字号:
);}Effect.SwitchOff = function(element) { element = $(element); var oldOpacity = Element.getInlineOpacity(element); return new Effect.Appear(element, { duration: 0.4, from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, beforeSetup: function(effect) { Element.makePositioned(effect.element); Element.makeClipping(effect.element); }, afterFinishInternal: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); Element.undoPositioned(effect.element); Element.setInlineOpacity(effect.element, oldOpacity); } }) } });}Effect.DropOut = function(element) { element = $(element); var oldTop = element.style.top; var oldLeft = element.style.left; var oldOpacity = Element.getInlineOpacity(element); return new Effect.Parallel( [ new Effect.MoveBy(element, 100, 0, { sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { Element.makePositioned(effect.effects[0].element); }, afterFinishInternal: function(effect) { Element.hide(effect.effects[0].element); Element.undoPositioned(effect.effects[0].element); effect.effects[0].element.style.left = oldLeft; effect.effects[0].element.style.top = oldTop; Element.setInlineOpacity(effect.effects[0].element, oldOpacity); } }, arguments[1] || {}));}Effect.Shake = function(element) { element = $(element); var oldTop = element.style.top; var oldLeft = element.style.left; return new Effect.MoveBy(element, 0, 20, { duration: 0.05, afterFinishInternal: function(effect) { new Effect.MoveBy(effect.element, 0, -40, { duration: 0.1, afterFinishInternal: function(effect) { new Effect.MoveBy(effect.element, 0, 40, { duration: 0.1, afterFinishInternal: function(effect) { new Effect.MoveBy(effect.element, 0, -40, { duration: 0.1, afterFinishInternal: function(effect) { new Effect.MoveBy(effect.element, 0, 40, { duration: 0.1, afterFinishInternal: function(effect) { new Effect.MoveBy(effect.element, 0, -20, { duration: 0.05, afterFinishInternal: function(effect) { Element.undoPositioned(effect.element); effect.element.style.left = oldLeft; effect.element.style.top = oldTop; }}) }}) }}) }}) }}) }});}Effect.SlideDown = function(element) { element = $(element); Element.cleanWhitespace(element); // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = element.firstChild.style.bottom; var elementDimensions = Element.getDimensions(element); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { Element.makePositioned(effect.element.firstChild); if (window.opera) effect.element.firstChild.style.top = ""; Element.makeClipping(effect.element); element.style.height = '0'; Element.show(element); }, afterUpdateInternal: function(effect) { effect.element.firstChild.style.bottom = (effect.dims[0] - effect.element.clientHeight) + 'px'; }, afterFinishInternal: function(effect) { Element.undoClipping(effect.element); Element.undoPositioned(effect.element.firstChild); effect.element.firstChild.style.bottom = oldInnerBottom; } }, arguments[1] || {}) );} Effect.SlideUp = function(element) { element = $(element); Element.cleanWhitespace(element); var oldInnerBottom = element.firstChild.style.bottom; return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'box', scaleFrom: 100, restoreAfterFinish: true, beforeStartInternal: function(effect) { Element.makePositioned(effect.element.firstChild); if (window.opera) effect.element.firstChild.style.top = ""; Element.makeClipping(effect.element); Element.show(element); }, afterUpdateInternal: function(effect) { effect.element.firstChild.style.bottom = (effect.dims[0] - effect.element.clientHeight) + 'px'; }, afterFinishInternal: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); Element.undoPositioned(effect.element.firstChild); effect.element.firstChild.style.bottom = oldInnerBottom; } }, arguments[1] || {}) );}Effect.Squish = function(element) { // Bug in opera makes the TD containing this element expand for a instance after finish return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { Element.makeClipping(effect.element); }, afterFinishInternal: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); } });}Effect.Grow = function(element) { element = $(element); var options = arguments[1] || {}; var elementDimensions = Element.getDimensions(element); var originalWidth = elementDimensions.width; var originalHeight = elementDimensions.height; var oldTop = element.style.top; var oldLeft = element.style.left; var oldHeight = element.style.height; var oldWidth = element.style.width; var oldOpacity = Element.getInlineOpacity(element); var direction = options.direction || 'center'; var moveTransition = options.moveTransition || Effect.Transitions.sinoidal; var scaleTransition = options.scaleTransition || Effect.Transitions.sinoidal; var opacityTransition = options.opacityTransition || Effect.Transitions.full; var initialMoveX, initialMoveY; var moveX, moveY; switch (direction) { case 'top-left': initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = originalWidth; initialMoveY = moveY = 0; moveX = -originalWidth; break; case 'bottom-left': initialMoveX = moveX = 0; initialMoveY = originalHeight; moveY = -originalHeight; break; case 'bottom-right': initialMoveX = originalWidth; initialMoveY = originalHeight; moveX = -originalWidth; moveY = -originalHeight; break; case 'center': initialMoveX = originalWidth / 2; initialMoveY = originalHeight / 2; moveX = -originalWidth / 2; moveY = -originalHeight / 2; break; } return new Effect.MoveBy(element, initialMoveY, initialMoveX, { duration: 0.01, beforeSetup: function(effect) { Element.hide(effect.element); Element.makeClipping(effect.element); Element.makePositioned(effect.element); }, afterFinishInternal: function(effect) { new Effect.Parallel( [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: opacityTransition }), new Effect.MoveBy(effect.element, moveY, moveX, { sync: true, transition: moveTransition }), new Effect.Scale(effect.element, 100, { scaleMode: { originalHeight: originalHeight, originalWidth: originalWidth }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { effect.effects[0].element.style.height = 0; Element.show(effect.effects[0].element); }, afterFinishInternal: function(effect) { var el = effect.effects[0].element; var els = el.style; Element.undoClipping(el); Element.undoPositioned(el); els.top = oldTop; els.left = oldLeft; els.height = oldHeight; els.width = originalWidth + 'px'; Element.setInlineOpacity(el, oldOpacity); } }, options) ) } });}Effect.Shrink = function(element) { element = $(element); var options = arguments[1] || {}; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; var oldTop = element.style.top; var oldLeft = element.style.left; var oldHeight = element.style.height; var oldWidth = element.style.width; var oldOpacity = Element.getInlineOpacity(element); var direction = options.direction || 'center'; var moveTransition = options.moveTransition || Effect.Transitions.sinoidal; var scaleTransition = options.scaleTransition || Effect.Transitions.sinoidal; var opacityTransition = options.opacityTransition || Effect.Transitions.none; var moveX, moveY; switch (direction) { case 'top-left': moveX = moveY = 0; break; case 'top-right': moveX = originalWidth; moveY = 0; break; case 'bottom-left': moveX = 0; moveY = originalHeight; break; case 'bottom-right': moveX = originalWidth; moveY = originalHeight; break; case 'center': moveX = originalWidth / 2; moveY = originalHeight / 2; break; } return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: scaleTransition, restoreAfterFinish: true}), new Effect.MoveBy(element, moveY, moveX, { sync: true, transition: moveTransition }) ], Object.extend({ beforeStartInternal: function(effect) { Element.makePositioned(effect.effects[0].element); Element.makeClipping(effect.effects[0].element); }, afterFinishInternal: function(effect) { var el = effect.effects[0].element; var els = el.style; Element.hide(el); Element.undoClipping(el); Element.undoPositioned(el); els.top = oldTop; els.left = oldLeft; els.height = oldHeight; els.width = oldWidth; Element.setInlineOpacity(el, oldOpacity); } }, options) );}Effect.Pulsate = function(element) { element = $(element); var options = arguments[1] || {}; var oldOpacity = Element.getInlineOpacity(element); var transition = options.transition || Effect.Transitions.sinoidal; var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) }; reverser.bind(transition); return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 3.0, from: 0, afterFinishInternal: function(effect) { Element.setInlineOpacity(effect.element, oldOpacity); } }, options), {transition: reverser}));}Effect.Fold = function(element) { element = $(element); var originalTop = element.style.top; var originalLeft = element.style.left; var originalWidth = element.style.width; var originalHeight = element.style.height; Element.makeClipping(element); return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); effect.element.style.top = originalTop; effect.element.style.left = originalLeft; effect.element.style.width = originalWidth; effect.element.style.height = originalHeight; } }); }}, arguments[1] || {}));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -