JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE HTML>
<html>
<head>
<title>Fading Tabs by J.A.D.M</title>
<script type="text/javascript">
function FadingTabs()
{
// Stores some general purpose variables for tracking active tabs, transition flags etc.
FadingTabs.tabsDiv = document.getElementById('tabs'); // reference to tab wrapper
FadingTabs.tabsLen = FadingTabs.tabsDiv.getElementsByTagName("div").length;
FadingTabs.visible = (isNaN(FadingTabs.visible))?2:FadingTabs.visible; // position from -3 to +3, visible is reference to tabs 0 to number of divs
FadingTabs.aniDone = (isNaN(FadingTabs.aniDone))?true:FadingTabs.aniDone; // aniDone is a complete flag for the Animation
FadingTabs.tabWidth = 400;
FadingTabs.tabPadding = 0;
FadingTabs.tabMargin = 10;
// set width of entire wrapper for all tabs
FadingTabs.tabsDiv.style.width = FadingTabs.tabsLen*(FadingTabs.tabWidth+FadingTabs.tabPadding*2+FadingTabs.tabMargin*2) + 'px';
ref = FadingTabs.tabsDiv.getElementsByTagName("div")
for(x=0;x<FadingTabs.tabsLen;x+=1) // apply settings to each tab
{
ref[x].style.width = FadingTabs.tabWidth + 'px';
ref[x].style.padding = FadingTabs.tabPadding + 'px';
ref[x].style.marginLeft = FadingTabs.tabMargin + 'px';
}
}
function Flick(e)
{
if (e == null) { e = window.event; } // explorer fix
//infoDiv = document.getElementById('info') // in IE var name and id may not be the same!
// static variables, if not defined initialise to number otherwise keep same
//Math.round(tabsLen/2) ::: if(isNaN(flick.visible)){tabs.getElementsByTagName("div")[flick.visible].style.display = "block"}
xBegin = e.screenX; // get mouse coordinates
//window.event = NULL;
return true;
}
function FlickOut(evt)
{
if (evt == null) { evt = window.event; }
xEnd=evt.screenX; // get mouse coordinates
//alert('test2')
if(Math.abs(xEnd-xBegin)>70 && FadingTabs.aniDone) // ensure flick magnitude is not just a click
{
...