| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- document.body.classList.add('support-nav-light');
- (function () {
- var bindTabs = function (containerSelector, tabSelector, panelSelector, activeClass) {
- var containers = Array.prototype.slice.call(document.querySelectorAll(containerSelector));
- containers.forEach(function (container) {
- var tabs = Array.prototype.slice.call(container.querySelectorAll(tabSelector));
- if (!tabs.length) return;
- var panelScope = container.parentElement || document;
- var panels = Array.prototype.slice.call(panelScope.querySelectorAll(panelSelector));
- tabs.forEach(function (tab) {
- tab.addEventListener('click', function () {
- var targetId = tab.getAttribute('data-target');
- tabs.forEach(function (item) {
- item.classList.remove(activeClass);
- if (item.hasAttribute('aria-selected')) {
- item.setAttribute('aria-selected', 'false');
- }
- });
- panels.forEach(function (panel) {
- var matched = panel.id === targetId;
- panel.classList.toggle(activeClass, matched);
- if (matched) {
- panel.removeAttribute('hidden');
- } else {
- panel.setAttribute('hidden', 'hidden');
- }
- });
- tab.classList.add(activeClass);
- if (tab.hasAttribute('aria-selected')) {
- tab.setAttribute('aria-selected', 'true');
- }
- });
- });
- });
- };
- bindTabs('.support-detail-main', '.support-detail-tab', '.support-detail-panel', 'is-active');
- Array.prototype.slice.call(document.querySelectorAll('.support-detail-panel')).forEach(function (panel) {
- var subtabWrap = panel.querySelector('.support-detail-subtabs');
- if (!subtabWrap) return;
- var subtabs = Array.prototype.slice.call(subtabWrap.querySelectorAll('.support-detail-subtab'));
- var subpanels = Array.prototype.slice.call(panel.querySelectorAll('.support-detail-subpanel'));
- subtabs.forEach(function (subtab) {
- subtab.addEventListener('click', function () {
- var targetId = subtab.getAttribute('data-target');
- subtabs.forEach(function (item) {
- item.classList.remove('is-active');
- });
- subpanels.forEach(function (subpanel) {
- var matched = subpanel.id === targetId;
- subpanel.classList.toggle('is-active', matched);
- if (matched) {
- subpanel.removeAttribute('hidden');
- } else {
- subpanel.setAttribute('hidden', 'hidden');
- }
- });
- subtab.classList.add('is-active');
- });
- });
- });
- var setupCollapsible = function (root) {
- if (!root) return;
- var groups = Array.prototype.slice.call(root.querySelectorAll('[data-collapsible]'));
- groups.forEach(function (group) {
- var visibleCount = parseInt(group.getAttribute('data-visible-count') || '0', 10);
- var items = Array.prototype.slice.call(group.children).filter(function (node) {
- return node.nodeType === 1;
- });
- var wrap = group.nextElementSibling;
- var button = wrap && wrap.classList.contains('support-more-wrap') ? wrap.querySelector('.support-more-btn') : null;
- items.forEach(function (item, index) {
- item.classList.toggle('support-collapsed-item', visibleCount > 0 && index >= visibleCount);
- });
- if (button && wrap) {
- var hasMore = visibleCount > 0 && items.length > visibleCount;
- var moreText = button.getAttribute('data-more-text') || '查看更多';
- var lessText = button.getAttribute('data-less-text') || '收起更多';
- wrap.hidden = !hasMore;
- button.textContent = moreText;
- button.onclick = function () {
- var expanded = group.classList.toggle('is-expanded');
- items.forEach(function (item, index) {
- if (visibleCount > 0 && index >= visibleCount) {
- item.classList.toggle('support-collapsed-item', !expanded);
- }
- });
- button.textContent = expanded ? lessText : moreText;
- };
- }
- });
- };
- Array.prototype.slice.call(document.querySelectorAll('.support-detail-panel')).forEach(function (panel) {
- setupCollapsible(panel);
- });
- })();
|