📄 effects.js
字号:
/* ------------- prepackaged effects ------------- */Effect.Fade = function(element) { options = Object.extend({ from: 1.0, to: 0.0, afterFinish: function(effect) { Element.hide(effect.element); effect.setOpacity(1); } }, arguments[1] || {}); return new Effect.Opacity(element,options);}Effect.Appear = function(element) { options = Object.extend({ from: 0.0, to: 1.0, beforeStart: function(effect) { effect.setOpacity(0); Element.show(effect.element); }, afterUpdate: function(effect) { Element.show(effect.element); } }, arguments[1] || {}); return new Effect.Opacity(element,options);}Effect.Puff = function(element) { return new Effect.Parallel( [ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true }), new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ], { duration: 1.0, afterUpdate: function(effect) { effect.effects[0].element.style.position = 'absolute'; }, afterFinish: function(effect) { Element.hide(effect.effects[0].element); } } );}Effect.BlindUp = function(element) { Element.makeClipping(element); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, afterFinish: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); } }, arguments[1] || {}) );}Effect.BlindDown = function(element) { $(element).style.height = '0px'; Element.makeClipping(element); Element.show(element); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'contents', scaleFrom: 0, afterFinish: function(effect) { Element.undoClipping(effect.element); } }, arguments[1] || {}) );}Effect.SwitchOff = function(element) { return new Effect.Appear(element, { duration: 0.4, transition: Effect.Transitions.flicker, afterFinish: function(effect) { effect.element.style.overflow = 'hidden'; new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, afterUpdate: function(effect) { if(effect.element.style.position=="") effect.element.style.position = 'relative'; }, afterFinish: function(effect) { Element.hide(effect.element); } } ) } } );}Effect.DropOut = function(element) { return new Effect.Parallel( [ new Effect.MoveBy(element, 100, 0, { sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ], { duration: 0.5, afterFinish: function(effect) { Element.hide(effect.effects[0].element); } });}Effect.Shake = function(element) { return new Effect.MoveBy(element, 0, 20, { duration: 0.05, afterFinish: function(effect) { new Effect.MoveBy(effect.element, 0, -40, { duration: 0.1, afterFinish: function(effect) { new Effect.MoveBy(effect.element, 0, 40, { duration: 0.1, afterFinish: function(effect) { new Effect.MoveBy(effect.element, 0, -40, { duration: 0.1, afterFinish: function(effect) { new Effect.MoveBy(effect.element, 0, 40, { duration: 0.1, afterFinish: function(effect) { new Effect.MoveBy(effect.element, 0, -20, { duration: 0.05, afterFinish: function(effect) { }}) }}) }}) }}) }}) }});}Effect.SlideDown = function(element) { element = $(element); element.style.height = '0px'; Element.makeClipping(element); Element.cleanWhitespace(element); Element.makePositioned(element.firstChild); Element.show(element); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'contents', scaleFrom: 0, afterUpdate: function(effect) { effect.element.firstChild.style.bottom = (effect.originalHeight - effect.element.clientHeight) + 'px'; }, afterFinish: function(effect) { Element.undoClipping(effect.element); } }, arguments[1] || {}) );} Effect.SlideUp = function(element) { element = $(element); Element.makeClipping(element); Element.cleanWhitespace(element); Element.makePositioned(element.firstChild); Element.show(element); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, afterUpdate: function(effect) { effect.element.firstChild.style.bottom = (effect.originalHeight - effect.element.clientHeight) + 'px'; }, afterFinish: function(effect) { Element.hide(effect.element); Element.undoClipping(effect.element); } }, arguments[1] || {}) );}Effect.Squish = function(element) { return new Effect.Scale(element, 0, { afterFinish: function(effect) { Element.hide(effect.element); } });}Effect.Grow = function(element) { element = $(element); var options = arguments[1] || {}; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; element.style.overflow = 'hidden'; Element.show(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, beforeUpdate: function(effect) { $(element).style.height = '0px'; }, afterFinish: function(effect) { new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 1.0, from: 0.0, transition: opacityTransition }), new Effect.MoveBy(element, moveY, moveX, { sync: true, transition: moveTransition }), new Effect.Scale(element, 100, { scaleMode: { originalHeight: originalHeight, originalWidth: originalWidth }, sync: true, scaleFrom: 0, scaleTo: 100, transition: scaleTransition })], options); } });}Effect.Shrink = function(element) { element = $(element); var options = arguments[1] || {}; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; element.style.overflow = 'hidden'; Element.show(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, 0, { sync: true, transition: moveTransition }), new Effect.MoveBy(element, moveY, moveX, { sync: true, transition: scaleTransition }) ], options);}Effect.Pulsate = function(element) { var options = arguments[1] || {}; 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, afterFinish: function(effect) { Element.show(effect.element); } }, options), {transition: reverser}));}Effect.Fold = function(element) { $(element).style.overflow = 'hidden'; return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleTo: 100, scaleX: false, afterFinish: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleTo: 0, scaleY: false, afterFinish: function(effect) { Element.hide(effect.element) } }); }}, arguments[1] || {}));}// old: new Effect.ContentZoom(element, percent)// new: Element.setContentZoom(element, percent) Element.setContentZoom = function(element, percent) { var element = $(element); element.style.fontSize = (percent/100) + "em"; if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -