Skip to content

Instantly share code, notes, and snippets.

@JingwenTian
Created May 20, 2014 03:15
Show Gist options
  • Save JingwenTian/f1eecf7ed01610e697a1 to your computer and use it in GitHub Desktop.
Save JingwenTian/f1eecf7ed01610e697a1 to your computer and use it in GitHub Desktop.
原生JS(导航的显示与隐藏)
/*NEW NAVIGATOR START*/
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,'');
}
}
var iBase = {
Id: function(name){
return document.getElementById(name);
},
SetOpacity: function(ev, v){
ev.filters ? ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100;
}
}
//淡入效果(含淡入到指定透明度)
function fadeIn(elem, speed, opacity){
speed = speed || 20;
opacity = opacity || 100;
elem.style.display = 'block';
iBase.SetOpacity(elem, 0);
var val = 0;
(function(){
iBase.SetOpacity(elem, val);
val += 5;
if (val <= opacity) {
setTimeout(arguments.callee, speed)
}
})();
}
//淡出效果(含淡出到指定透明度)
function fadeOut(elem, speed, opacity){
speed = speed || 20;
opacity = opacity || 0;
var val = 100;
(function(){
iBase.SetOpacity(elem, val);
val -= 5;
if (val >= opacity) {
setTimeout(arguments.callee, speed);
}else if (val < 0) {
elem.style.display = 'none';
}
})();
}
function showMenu(){
if(hasClass(document.getElementById("menuBtn"), "click")){
removeClass(document.getElementById("menuBtn"), "click");
fadeOut(document.getElementById("popmenu"));
}else{
addClass(document.getElementById("menuBtn"), "click");
fadeIn(document.getElementById("popmenu"));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment