// 用法:一定要window.accordion = ,属性名accordion与id相同 // window.accordion = new Accordion.slider('accordion', 2); var Accordion = function () { function slider(id, currentIndex, k) { this.id = id; this.arr = [] this.init(id, currentIndex, k); } slider.prototype.init = function (id, currentIndex, k) { var a, h, s, l, i; a = document.getElementById(id); h = a.getElementsByTagName('dt'); s = a.getElementsByTagName('dd'); this.length = l = h.length; //初始化卡片背景颜色 var colors = ['#faa755', '#4e72b8', '#1d953f', '#694d9f', '#ed1941', '#009ad6', '#ef5b9c', '#596032']; for (let j = 0; j < h.length; j++) { h[j].style.backgroundColor = colors[j]; } //width var accWidth = a.offsetWidth; var widthContent = s[0].offsetWidth; var cardCidth = (accWidth - widthContent) / h.length; // for (i = 0; i < this.length; i++) { var d = h[i]; d.style.width = cardCidth + 'px'; d.onclick = new Function(this.id + '.pro(this)'); this.arr[i] = d; } for (i = 0; i < l; i++) { var d = s[i]; d.mh = d.offsetWidth; if (currentIndex != i) { d.style.display = 'none'; } } }; slider.prototype.pro = function (d) { for (var i = 0; i < this.length; i++) { var h = this.arr[i]; var s = h.nextSibling; s = s.nodeType != 1 ? s.nextSibling : s; if ((h == d && s.style.display == 'none') || (h == d && s.style.display == '')) { s.style.display = ''; } else if (s.style.display == '') { s.style.display = 'none'; } } }; return {slider: slider}; }();