Ajax Loader
×
HTML
<div class="tab">
1
<div class="tab">
2
  <ul class="tab-menuWrapper clearfix">
3
    <li class="tab-menu current-menu">menu1-1</li>
4
    <li class="tab-menu">menu2-2</li>
5
    <li class="tab-menu">menu3-3</li>
6
    <li class="tab-menu">menu4-4</li>
7
  </ul>
8
  <div class="tab-contentWrapper">
9
    <div class="tab-content">content1-1</div>
10
    <div class="tab-content hidden">content2-2</div>
11
    <div class="tab-content hidden">content3-3</div>
12
    <div class="tab-content hidden">content4-4</div>
13
  </div>
14
</div>
15
 
16
 <div class="tab">
17
  <ul class="tab-menuWrapper clearfix">
18
    <li class="tab-menu current-menu2">menu1-1</li>
19
    <li class="tab-menu">menu2-2</li>
20
    <li class="tab-menu">menu3-3</li>
21
    <li class="tab-menu">menu4-4</li>
22
  </ul>
23
  <div class="tab-contentWrapper">
24
    <div class="tab-content">content1-1</div>
25
    <div class="tab-content hidden">content2-2</div>
26
    <div class="tab-content hidden">content3-3</div>
27
    <div class="tab-content hidden">content4-4</div>
28
  </div>
29
</div>
 
CSS
ul {margin: 0; padding: 0; list-style: none; }
1
ul {margin: 0; padding: 0; list-style: none; }
2
li {margin: 0; padding: 0; }
3
.tab {
4
  width: 990px;
5
  margin: 10px auto 50px;
6
}
7
.clearfix {
8
  zoom: 1;
9
}
10
.clearfix:after {
11
  content: ".";
12
  display: block;
13
  clear: both;
14
  line-height: 0;
15
  visibility: hidden;
16
  height: 0;
17
}
18
.hidden { display: none; }
19
.tab-menu {
20
  float: left;
21
  margin: 0 5px;
22
  padding: 5px;
23
  background: rgba(0, 0, 0, .3);
24
  border: 1px solid #333;
25
  border-bottom: none;
26
  cursor: pointer;
27
}
28
.tab-contentWrapper {
29
  border: 1px solid #000;
30
  height: 300px;
31
}
32
.current-menu {
33
  color: #fff;
34
}
35
.current-menu2 {
36
color: #ff0;
37
}
 
JavaScript
// base.js
1
// base.js
2
var GLOBAL = {};
3
GLOBAL.namespace = function(str) {
4
  var arr = str.split("."), o = GLOBAL;
5
  for (var i = (arr[0] == "GLOBAL") ? 1 : 0; i < arr.length; i++) {
6
    o[arr[i]] = o[arr[i]] || {};
7
    o = o[arr[i]];
8
  }
9
}; 
10
GLOBAL.namespace("Dom");
11
GLOBAL.Dom.getElementsByClassName = function(str, root, tag) {
12
  if (root) {
13
    root = (typeof root == "string") ? document.getElementById(root) : root;
14
  } else {
15
    root = document.body;
16
  }
17
  tag = tag || "*";
18
  var els = root.getElementsByTagName(tag), arr = [];
19
  for (var i = 0, n = els.length; i < n; i++) {
20
    for (var j = 0, k = els[i].className.split(" "), l = k.length; j < l; j++) {
21
      if (k[j] == str) {
22
        arr.push(els[i]);
23
        break;
24
      }
25
    }
26
  }
27
  return arr;
28
};
29
 
30
GLOBAL.Dom.addClass = function(node,str){
31
 if(!new RegExp("(^|\\s+)"+str).test(node.className)){
32
  node.className = node.className + " " + str;
33
 }
34
};
35
 
36
GLOBAL.Dom.removeClass = function(node, str) {
37
  node.className = node.className.replace(new RegExp("(^|\\s+)"+str), "");
38
};
39
 
40
// define function
41
function setTab(root, currentClass) {
42
var menus = GLOBAL.Dom.getElementsByClassName("tab-menu", root),
43
    tabContents = GLOBAL.Dom.getElementsByClassName("tab-content", root);
44
 
45
for (var i = 0; i < menus.length; i++) {
46
  menus[i]._index = i;
47
  menus[i].onclick = function() {
48
    for (var j = 0; j < tabContents.length; j++) {
49
      tabContents[j].style.display = "none";
50
    }
51
    tabContents[this._index].style.display = "block";
52
    if (currentClass) {
53
      var currentMenu = GLOBAL.Dom.getElementsByClassName(currentClass, root)[0];
54
      if (currentMenu) {
55
        GLOBAL.Dom.removeClass(currentMenu, currentClass);
56
       }
57
      GLOBAL.Dom.addClass(this, currentClass);
58
    }
59
  };
60
}
61
}
62
 
63
// application.js
64
var tabs = GLOBAL.Dom.getElementsByClassName("tab");
65
setTab(tabs[0], "current-menu");
66
setTab(tabs[1], "current-menu2");
67
 
68
 
 

Untitled

CSSDeck G+