Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var speed = 2000; // smaller is faster
- var counter = 0;
- var tabWrapper = document.getElementById('tab_wrapper');
- var tabs = document.querySelectorAll('#tab_wrapper .oxy-tab');
- var tabsClass = 'oxy-tab';
- var tabContents = document.querySelectorAll('#tab_wrapper .oxy-tab-content');
- let isMouseHover = false;
- // check for mouse leave
- tabWrapper.addEventListener("mouseleave", function (event) {
- isMouseHover = false
- });
- // check for mouse over
- tabWrapper.addEventListener("mouseover", function (event) {
- isMouseHover = true
- });
- // loop through each tab
- tabs.forEach(tab => {
- // get tab parent
- var parent = tab.parentNode;
- // get index (order number) of each tab
- let index = Array.prototype.indexOf.call(parent.children, tab);
- // add a special class to each tab based on their index
- //by appending the index number incrementally for each tab
- tab.classList.add(tabsClass + (index + 1))
- //ensure autoplay resumes from current active tab after being clicked
- tab.addEventListener("mouseup", function(e) {
- counter = index + 1;
- })
- })
- // function to autoplay the tabs
- function autoPlayTabs() {
- // don't run function if mouse is hovered on the tab wrapper
- if(isMouseHover) {
- return;
- }
- // increment counter by 1
- counter++
- // reset counter to 1 if it's greater than the number of tabs
- if(counter>tabs.length){
- counter = 1;
- }
- // set active tab to the tab that matches the class + counter value
- let activeTab = document.querySelector('.' + tabsClass + counter)
- //console.log(activeTab)
- // perfom a click action on the active tab to switch the tab content
- activeTab.click()
- }
- function startInterval() {
- //call autoPlayTabs function
- var i = setInterval(autoPlayTabs, speed);
- }
- //call startInterval function after page load
- document.addEventListener('DOMContentLoaded', startInterval);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement