var miniTab = { currentTab: 0, activeTab: 0, destX: 0, destW: 0, t: 0, b: 0, c: 0, d: 20, animInterval: null, sliderObj: null, aHeight: 0, init: function() { if(!document.getElementById || !document.getElementById("miniflex")) return; var ul = document.getElementById("miniflex"); var liArr = ul.getElementsByTagName("li"); var aArr = ul.getElementsByTagName("a"); for(var i = 0, li; li = liArr[i]; i++) { liArr[i].onmouseover = aArr[i].onfocus = function(e) { var pos = 0; var elem = this.nodeName == "LI" ? this : this.parentNode; while(elem.previousSibling) { elem = elem.previousSibling; if(elem.tagName && elem.tagName == "LI") pos++; } miniTab.initSlide(pos); } } ul.onmouseout = function(e) { miniTab.initSlide(miniTab.currentTab); }; for(var i = 0; i < aArr.length; i++) { if(document.location.href.indexOf(aArr[i].href)>=0) { miniTab.activeTab = miniTab.currentTab = i; } aArr[i].style.borderBottom = "0px"; aArr[i].style.paddingBottom = "6px"; } miniTab.slideObj = ul.parentNode.appendChild(document.createElement("div")); miniTab.slideObj.appendChild(document.createTextNode(String.fromCharCode(160))); miniTab.slideObj.id = "animated-tab"; miniTab.slideObj.style.top = (ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) + "px"; miniTab.slideObj.style.left = (ul.offsetLeft + + liArr[miniTab.activeTab].offsetLeft + aArr[miniTab.activeTab].offsetLeft) + "px"; miniTab.slideObj.style.width = aArr[miniTab.activeTab].offsetWidth + "px"; miniTab.aHeight = ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop; miniTab.initSlide(miniTab.activeTab, true); var intervalMethod = function() { miniTab.slideIt(); } miniTab.animInterval = setInterval(intervalMethod,10); }, cleanUp: function() { clearInterval(miniTab.animInterval); miniTab.animInterval = null; }, initSlide: function(pos, force) { if(!force && pos == miniTab.activeTab) return; miniTab.activeTab = pos; miniTab.initAnim(); }, initAnim: function() { var ul = document.getElementById("miniflex"); var liArr = ul.getElementsByTagName("li"); var aArr = ul.getElementsByTagName("a"); miniTab.destX = parseInt(liArr[miniTab.activeTab].offsetLeft + liArr[miniTab.activeTab].getElementsByTagName("a")[0].offsetLeft + ul.offsetLeft); miniTab.destW = parseInt(liArr[miniTab.activeTab].getElementsByTagName("a")[0].offsetWidth); miniTab.t = 0; miniTab.b = miniTab.slideObj.offsetLeft; miniTab.c = miniTab.destX - miniTab.b; miniTab.bW = miniTab.slideObj.offsetWidth; miniTab.cW = miniTab.destW - miniTab.bW; miniTab.slideObj.style.top = (ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) + "px"; }, slideIt:function() { var ul = document.getElementById("miniflex"); var liArr = ul.getElementsByTagName("li"); var aArr = ul.getElementsByTagName("a"); // Has the browser text size changed? if(miniTab.aHeight != ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) { miniTab.initAnim(); miniTab.aHeight = ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop }; if(miniTab.t++ < miniTab.d) { var x = miniTab.animate(miniTab.t,miniTab.b,miniTab.c,miniTab.d); var w = miniTab.animate(miniTab.t,miniTab.bW,miniTab.cW,miniTab.d); miniTab.slideObj.style.left = parseInt(x) + "px"; miniTab.slideObj.style.width = parseInt(w) + "px"; } else { miniTab.slideObj.style.left = miniTab.destX + "px"; miniTab.slideObj.style.width = miniTab.destW +"px"; } }, animate: function(t,b,c,d) { if ((t/=d/2) < 1) return c/2*t*t + b; return -c/2 * ((--t)*(t-2) - 1) + b; }}window.onload = miniTab.init;window.onunload = miniTab.cleanUp;

© GEO21BEK

Конструктор сайтов - uCoz