📄 effects.js
字号:
Zapatec.Effect.applyFunc(ref, function(){ var el = arguments[0]; if(el.nodeType == 1) { el.style.backgroundColor = "#FFFF" + (255 - Math.floor(counter*1.5)).toString(16); } }); if(counter <= 0 || counter >= 100) { Zapatec.Effect.applyFunc(ref, function(){ var el = arguments[0]; if(el.nodeType == 1) { el.style.backgroundColor = el.origbackground; el.origbackground = null; } }); }};Zapatec.Effect.roundCorners = function(ref, outerColor, innerColor){ if(!document.getElementById || !document.createElement){ return; } var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf("msie 5") != -1 && ua.indexOf("opera") == -1){ return; } var top = document.createElement("div"); top.className = "rtop"; top.style.backgroundColor = outerColor; for(var i = 1; i <= 4; i++){ var child = document.createElement("span"); child.className = "r" + i; child.style.backgroundColor = innerColor; top.appendChild(child); } ref.firstChild == null ? ref.appendChild(top) : ref.insertBefore(top, ref.firstChild); var bottom = document.createElement("div"); bottom.className = 'rbottom'; bottom.style.backgroundColor = outerColor; for(var i = 4; i >= 1; i--){ var child = document.createElement("span"); child.className = 'r' + i; child.style.backgroundColor = innerColor; bottom.appendChild(child); } ref.appendChild(bottom); ref.__zp_roundCorners = true; ref.__zp_outerColor = outerColor; // if element has shadow - if(ref.__zp_dropshadow != null){ document.body.removeChild(ref.__zp_dropshadow); ref.__zp_dropshadow = null; Zapatec.Effect.dropShadow(ref, ref.__zp_deep); }};Zapatec.Effect.dropShadow = function(ref, deep) { // if element already have shadow or element is not visible - do nothing if(ref.__zp_dropshadow != null || ref.style.display == 'none'){ return false; } // parse deep parameter. if(deep == null || isNaN(parseInt(deep))) { deep = 5; } ref.__zp_deep = deep; var shadow = document.createElement("div"); shadow.style.position = "absolute"; shadow.style.backgroundColor = "#666666"; shadow.style.MozOpacity = 0.50; shadow.style.filter = "Alpha(Opacity=50)"; var pos = Zapatec.Utils.getElementOffset(ref); shadow.style.left = (pos.x + deep) + "px"; shadow.style.top = (pos.y + deep) + "px"; shadow.style.width = ref.offsetWidth + "px"; shadow.style.height = ref.offsetHeight + "px"; shadow.style.visibility = ref.style.visibility; shadow.style.display = ref.style.display; ref.__zp_dropshadow = shadow; document.body.insertBefore(shadow, document.body.firstChild); if(ref.__zp_roundCorners){ Zapatec.Effects.apply(shadow, 'roundCorners', {outerColor: ref.__zp_outerColor, innerColor: "#666666"}); } return true;};Zapatec.Effects = {};/** * This method is used to show HTML element with some visual effects. * * @param ref [HTMLElement] -- the DOM element that contains the menu items. * @param animSpeed [number] -- animation speed. From 1(low speed) to 100(high speed) * @param effects [String or array] -- what effects apply to element. May be a * string(when only one effect would be applied) or array of strings * @param onFinish[function] -- function to call when effect ends */Zapatec.Effects.show = function(ref, animSpeed, effects, onFinish) { Zapatec.Effects.init(ref, true, animSpeed, effects, onFinish);};/** * This method is used to hide HTML element with some visual effects. * * @param ref [HTMLElement] -- the DOM element that contains the menu items. * @param animSpeed [number] -- animation speed. From 1(low speed) to 100(high speed) * @param effects [String or array] -- what effects apply to element. May be a * string(when only one effect would be applied) or array of strings * @param onFinish[function] -- function to call when effect ends */Zapatec.Effects.hide = function(ref, animSpeed, effects, onFinish) { Zapatec.Effects.init(ref, false, animSpeed, effects, onFinish);};/** * This method is used to show/hide HTML element with some visual effects. * * @param ref [HTMLElement] -- the DOM element that contains the menu items. * @param show [boolean] -- if true - show element, false - hide element. * @param animSpeed [number] -- animation speed. From 1(low speed) to 100(high speed) * @param effects [String or array] -- what effects apply to element. May be a * string(when only one effect would be applied) or array of strings * @param onFinish[function] -- function to call when effect ends */Zapatec.Effects.init = function(ref, show, animSpeed, effects, onFinish){ if(typeof ref == "string"){ ref = document.getElementById(ref); } if(ref == null){ return null; } ref.animations = []; if(effects == null || effects.length == 0){ ref.style.display = show ? "" : "none"; if(onFinish != null){ onFinish(); } return null; } // if effects is given as string - replace it with array with one value if(typeof effects == "string") effects = [effects]; for(var i = 0; i < effects.length; i++){ var effect = null; // analyzing given effects names switch(effects[i]){ case 'fade': effect = Zapatec.Effect.fade; break; case 'slide': effect = Zapatec.Effect.slideTop; break; case 'slideTop': effect = Zapatec.Effect.slideTop; break; case 'slideRight': effect = Zapatec.Effect.slideRight; break; case 'slideBottom': effect = Zapatec.Effect.slideBottom; break; case 'slideLeft': effect = Zapatec.Effect.slideLeft; break; case 'glide': effect = Zapatec.Effect.glideTop; break; case 'glideTop': effect = Zapatec.Effect.glideTop; break; case 'glideRight': effect = Zapatec.Effect.glideRight; break; case 'glideBottom': effect = Zapatec.Effect.glideBottom; break; case 'glideLeft': effect = Zapatec.Effect.glideLeft; break; case 'wipe': effect = Zapatec.Effect.wipe; break; case 'unfurl': effect = Zapatec.Effect.unfurl; break; case 'grow': effect = Zapatec.Effect.grow; break; case 'shrink': effect = Zapatec.Effect.shrink; break; case 'highlight': effect = Zapatec.Effect.highlight; break; } if(effect != null){ ref.animations.push(effect); } } if(ref.animations.length != 0 && ref.running == null) { ref.running = true; Zapatec.Effects.run(ref, animSpeed, show, null, onFinish); }};/** * \internal is called from Zapatec.Effects.init. Runs periodically * updating element properties. * * @param ref [HTMLElement] -- the DOM element that contains the menu items. * @param animSpeed [number] -- animation speed. From 1(low speed) to 100(high speed) * @param show [boolean] -- if true - show element, false - hide element. * @param currVal [number] -- current progress - from 0 to 100. * @param onFinish[function] -- function to call when effect ends */Zapatec.Effects.run = function(ref, animSpeed, show, currVal, onFinish) { if(animSpeed == null) animSpeed = 10; if(currVal < 0){ currVal = 0; } if(currVal > 100){ currVal = 100; } if(currVal == null) { if(show){ currVal = 0 if(ref.style.display == "none"){ ref.style.display = ''; if(ref.__zp_dropshadow != null) { ref.__zp_dropshadow.style.display = ''; } } } else { currVal = 100; } } currVal += (show ? 1 : -1) * animSpeed; // run attached effects for (var i = 0; i < ref.animations.length; i++) { ref.animations[i](ref, currVal); if(ref.__zp_dropshadow != null) { ref.animations[i](ref.__zp_dropshadow, currVal); } } if (currVal <= 0 || currVal >= 100) { ref.running = null; if(onFinish != null){ onFinish(); } return; } else { setTimeout(function() { Zapatec.Effects.run(ref, animSpeed, show, currVal, onFinish); }, 50); }};Zapatec.Effects.apply = function(ref, effect, params){ if(ref == null || effect == null) { return; } if(typeof ref == "string") { ref = document.getElementById(ref); } if(ref == null) { return; } switch(effect) { case 'roundCorners': return Zapatec.Effect.roundCorners(ref, params['outerColor'], params['innerColor']); case 'dropShadow': return Zapatec.Effect.dropShadow(ref, params['deep']); }};Zapatec.Utils.addEvent(window, 'load', Zapatec.Utils.checkActivation);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -