/* * soChange 1.6.1 - simple object change with jQuery * made by bujichong 2011-10-10 * 浣滆€咃細涓嶇緛铏 2011-10-10 *E-mail:bujichong@163.com */ ; (function ($) { $.fn.extend({ "soChange": function (o) { o = $.extend({ thumbObj: null,//瀵艰埅瀵硅薄 botPrev: null,//鎸夐挳涓婁竴涓 botNext: null,//鎸夐挳涓嬩竴涓 changeType: 'fade',//鍒囨崲鏂瑰紡锛屽彲閫夛細fade,slide锛岄粯璁や负fade thumbNowClass: 'now',//瀵艰埅瀵硅薄褰撳墠鐨刢lass,榛樿涓簄ow thumbOverEvent: false,//榧犳爣缁忚繃thumbObj鏃舵槸鍚﹀垏鎹㈠璞★紝榛樿涓簍rue锛屼负false鏃讹紝鍙湁榧犳爣鐐瑰嚮thumbObj鎵嶅垏鎹㈠璞 slideTime: 1000,//骞虫粦杩囨浮鏃堕棿锛岄粯璁や负1000ms锛屼负0鎴栬礋鍊兼椂锛屽拷鐣hangeType鏂瑰紡锛屽垏鎹㈡晥鏋滀负鐩存帴鏄剧ず闅愯棌 autoChange: true,//鏄惁鑷姩鍒囨崲锛岄粯璁や负true clickFalse: true,//瀵艰埅瀵硅薄鐐瑰嚮鏄惁閾炬帴鏃犳晥锛岄粯璁ゆ槸return false閾炬帴鏃犳晥锛屽綋thumbOverEvent涓篺alse鏃讹紝姝ら」蹇呴』涓簍rue锛屽惁鍒欓紶鏍囩偣鍑讳簨浠跺啿绐 overStop: false,//榧犳爣缁忚繃鍒囨崲瀵硅薄鏃讹紝鏄惁鍋滄鍒囨崲锛屽苟浜庨紶鏍囩寮€鍚庨噸鍚嚜鍔ㄥ垏鎹紝鍓嶆彁鏄凡寮€鍚嚜鍔ㄥ垏鎹 changeTime: 5000,//鑷姩鍒囨崲鏃堕棿 delayTime: 100,//榧犳爣缁忚繃鏃跺璞″垏鎹㈣繜婊炴椂闂达紝鎺ㄨ崘鍊间负300ms callback: null }, o || {}); var _self = $(this); var thumbObj; var size = _self.size(); var nowIndex = 0; //瀹氫箟鍏ㄥ眬鎸囬拡 var index;//瀹氫箟鍏ㄥ眬鎸囬拡 var startRun;//棰勫畾涔夎嚜鍔ㄨ繍琛屽弬鏁 var delayRun;//棰勫畾涔夊欢杩熻繍琛屽弬鏁 //涓诲垏鎹㈠嚱鏁 function fadeAB() { if (nowIndex != index) { if (o.thumbObj) { $(o.thumbObj).removeClass(o.thumbNowClass).eq(index).addClass(o.thumbNowClass); } if (o.slideTime <= 0) { _self.eq(nowIndex).css({ "position": "absolute" }).hide(); _self.eq(index).css({ "position": "static" }).show(); } else if (o.changeType == 'fade') { if (o.callback) { o.callback(nowIndex, index, _self,thumbObj,o.changeTime); } _self.eq(nowIndex).css({ "position": "absolute"}).stop(true).animate({"opacity":0},o.slideTime,function(){ $(this).css({"visibility":"hidden"}) }) _self.eq(index).css({ "position": "static","visibility":"visible"}).stop(true).animate({"opacity":1},o.slideTime,function(){ }); } else { _self.eq(nowIndex).slideUp(o.slideTime); _self.eq(index).slideDown(o.slideTime); } nowIndex = index; if (o.autoChange) { clearInterval(startRun);//閲嶇疆鑷姩鍒囨崲鍑芥暟 startRun = setInterval(runNext, o.changeTime + o.slideTime); } } } //鍒囨崲鍒颁笅涓€涓 function runNext() { index = (nowIndex + 1) % size; fadeAB(); } //鍒濆鍖 _self.eq(0).addClass("in-view"); _self.css({ "position": "absolute","visibility":"hidden"}).eq(0).css({ "position": "static","visibility":"visible"}); index = 0; fadeAB(); //鐐瑰嚮浠讳竴鍥剧墖 if (o.thumbObj) { thumbObj = $(o.thumbObj); //鍒濆鍖杢humbObj thumbObj.removeClass(o.thumbNowClass).eq(0).addClass(o.thumbNowClass); thumbObj.click(function () { clearInterval(startRun); index = thumbObj.index($(this)); fadeAB(); if (o.clickFalse) { return false; } }); if (o.thumbOverEvent) { thumbObj.hover(function () {//鍘婚櫎jquery1.2.6涓嶆敮鎸佺殑mouseenter鏂规硶 index = thumbObj.index($(this)); delayRun = setTimeout(fadeAB, o.delayTime); }, function () { clearTimeout(delayRun); }); } } //鐐瑰嚮涓婁竴涓 if (o.botNext) { $(o.botNext).click(function () { if (_self.queue().length < 1) { runNext(); } return false; }); } //鐐瑰嚮涓嬩竴涓 if (o.botPrev) { $(o.botPrev).click(function () { if (_self.queue().length < 1) { index = (nowIndex + size - 1) % size; fadeAB(); } return false; }); } //鑷姩杩愯 if (o.autoChange) { startRun = setInterval(runNext, o.changeTime); if (o.overStop) { _self.hover(function () {//鍘婚櫎jquery1.2.6涓嶆敮鎸佺殑mouseenter鏂规硶 clearInterval(startRun);//閲嶇疆鑷姩鍒囨崲鍑芥暟 }, function () { startRun = setInterval(runNext, o.changeTime); }); } } } }) })(jQuery); // DOM Elements const tabs = document.querySelectorAll('.tab') const tabContents = document.querySelectorAll('.tabcontent') const darkModeSwitch = document.querySelector('#dark-mode-switch') // Functions const activateTab = tabnum => { tabs.forEach( tab => { tab.classList.remove('active') }) tabContents.forEach( tabContent => { tabContent.classList.remove('active') }) document.querySelector('#tab' + tabnum).classList.add('active') document.querySelector('#tabcontent' + tabnum).classList.add('active') localStorage.setItem('jstabs-opentab', JSON.stringify(tabnum)) } // Event Listeners tabs.forEach(tab => { tab.addEventListener('click', () => { activateTab(tab.dataset.tab) }) }) // darkModeSwitch.addEventListener('change', () => { // document.querySelector('body').classList.toggle('darkmode') // localStorage.setItem('jstabs-darkmode', JSON.stringify(!darkmode)) // }) // Retrieve stored data let darkmode = JSON.parse(localStorage.getItem('jstabs-darkmode')) const opentab = JSON.parse(localStorage.getItem('jstabs-opentab')) || '3' // and..... Action! if (darkmode === null) { darkmode = window.matchMedia("(prefers-color-scheme: dark)").matches // match to OS theme } if (darkmode) { document.querySelector('body').classList.add('darkmode') document.querySelector('#dark-mode-switch').checked = 'checked' } activateTab(opentab);