update and fix team page
This commit is contained in:
		
							
								
								
									
										123
									
								
								static/js/custom.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								static/js/custom.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
			
		||||
 | 
			
		||||
var displayedMenu = "";
 | 
			
		||||
var hamburgerShown = false;
 | 
			
		||||
let width = screen.width;
 | 
			
		||||
var isMobile = width < 1024;
 | 
			
		||||
 | 
			
		||||
function readingTime() {
 | 
			
		||||
    let articles = document.querySelectorAll(".article");
 | 
			
		||||
    let times = document.querySelectorAll(".time");
 | 
			
		||||
    const wpm = 225;
 | 
			
		||||
    let words;
 | 
			
		||||
    for (var i = 0; i < articles.length; i++) {
 | 
			
		||||
        words = articles[i].innerText.trim().split(/\s+/).length;
 | 
			
		||||
        let time = Math.ceil(words / wpm);
 | 
			
		||||
        times[i].innerText = `${time} minute read`
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
readingTime()
 | 
			
		||||
 | 
			
		||||
function toggleMenu(button) {
 | 
			
		||||
    if (displayedMenu === button.id.split("-")[0]) {
 | 
			
		||||
        button.className = button.className.replace(" text-gray-800 bg-stone-200 sm:bg-transparent", " text-gray-900");
 | 
			
		||||
        hideMenu(button.id.split("-")[0]);
 | 
			
		||||
        button.lastElementChild.className = button.lastElementChild.className.replace("rotate-0", "-rotate-90")
 | 
			
		||||
        displayedMenu = "";
 | 
			
		||||
    } else {
 | 
			
		||||
        showMenu(button.id.split("-")[0]);
 | 
			
		||||
        button.lastElementChild.className = button.lastElementChild.className.replace("-rotate-90", "rotate-0")
 | 
			
		||||
        button.className = button.className.replace(" text-gray-900", " text-gray-800 bg-stone-200 sm:bg-transparent");
 | 
			
		||||
        displayedMenu = button.id.split("-")[0]
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleClick(button) {
 | 
			
		||||
    if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") {
 | 
			
		||||
        toggleHamburger()
 | 
			
		||||
    }
 | 
			
		||||
    if (button.id.indexOf("menu") !== -1) {
 | 
			
		||||
        toggleMenu(button)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function toggleHamburger() {
 | 
			
		||||
    if (hamburgerShown) {
 | 
			
		||||
        hideHamburger();
 | 
			
		||||
        hamburgerShown = false;
 | 
			
		||||
    } else {
 | 
			
		||||
        showHamburger();
 | 
			
		||||
        hamburgerShown = true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function showMenu(menuName) {
 | 
			
		||||
    var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
    var menuBtnId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
    var menuElement = document.getElementById(menuId)
 | 
			
		||||
    menuElement.className = menuElement.className.replace(" hidden", "");
 | 
			
		||||
    let children = document.querySelectorAll('.nav_menu')
 | 
			
		||||
    for (let i = 0; i < children.length; i++) {
 | 
			
		||||
        if (menuElement !== children[i]) {
 | 
			
		||||
            let btnId = `${children[i].id}-btn`;
 | 
			
		||||
            let btn = document.getElementById(btnId);
 | 
			
		||||
            if (btn && !children[i].classList.contains('hidden')) {
 | 
			
		||||
                children[i].classList.add('hidden')
 | 
			
		||||
                btn.lastElementChild.classList.replace("rotate-0", "-rotate-90")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    setTimeout(function () {
 | 
			
		||||
        menuElement.className = menuElement.className.replace("duration-200 ease-in opacity-0 -translate-y-1", "duration-150 ease-out opacity-1 -translate-y-0");
 | 
			
		||||
    }, 10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hideMenu(menuName) {
 | 
			
		||||
    var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
    var menuElement = document.getElementById(menuId)
 | 
			
		||||
    menuElement.className = menuElement.className.replace("duration-150 ease-out opacity-1 -translate-y-0", "duration-200 ease-in opacity-0 -translate-y-1");
 | 
			
		||||
    setTimeout(function () {
 | 
			
		||||
        menuElement.className = menuElement.className + " hidden"
 | 
			
		||||
    }, 300);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function showHamburger() {
 | 
			
		||||
    document.getElementById('header-container').className = "overflow-hidden";
 | 
			
		||||
    document.getElementById('hamburger').className = "fixed mt-16 z-20 top-0 inset-x-0 transition transform origin-top-right";
 | 
			
		||||
    document.getElementById('hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out";
 | 
			
		||||
    document.getElementById('close-hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hideHamburger() {
 | 
			
		||||
    document.getElementById('header-container').className = "";
 | 
			
		||||
    document.getElementById('hamburger').className = "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden";
 | 
			
		||||
    document.getElementById('hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out";
 | 
			
		||||
    document.getElementById('close-hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out";
 | 
			
		||||
    if (displayedMenu !== "") {
 | 
			
		||||
        hideMenu(displayedMenu);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
function toggleFilter() {
 | 
			
		||||
    var filterMenu = document.getElementById("filter-menu")
 | 
			
		||||
    if (filterMenu.className.includes("hidden")) {
 | 
			
		||||
        filterMenu.className = filterMenu.className.replace("hidden", " ")
 | 
			
		||||
    } else {
 | 
			
		||||
        filterMenu.className = filterMenu.className + " hidden"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
window.onload = function () {
 | 
			
		||||
    let elements = document.getElementsByTagName("button");
 | 
			
		||||
    let buttons = [...elements]
 | 
			
		||||
 | 
			
		||||
    buttons.forEach((button) => {
 | 
			
		||||
        button.addEventListener('click', function () {
 | 
			
		||||
            handleClick(button)
 | 
			
		||||
        });
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    document.getElementById("filter-btn").addEventListener('click', toggleFilter);
 | 
			
		||||
    document.getElementById("mobile-learn-btn").addEventListener('click', toggleMenu);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function openInNewTab(url) {
 | 
			
		||||
    window.open(url, '_blank').focus()
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user