JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" type="text/css" href="http://radio-constr71.ucoz.net/css/menus.css"/> 
 <script type="text/javascript" src="http://radio-constr71.ucoz.net/js/menus.js"></script> 
<script type="text/javascript"> 
// <![CDATA[ 
var myMenu; 
window.onload = function() { 
myMenu = new SDMenu("my_menu"); 
myMenu.init(); 
}; 
// ]]> 
</script> 

<div id="my_menu" class="sdmenu"> 
<a href="http://radio-constr71.ucoz.net/" style="display: none;"></a> 
 <div class="collapsed"> 
 <span>Приборы</span> 
 <a href="/shop/pribory">Группа товаров приборы</a>
 <a href="/shop/pribory/programmatory">Программаторы</a> 
 </div> 
 
<div class="collapsed"> 
 <span>Конструкторы</span> 
 <a href="/shop/konstruktory">Группа товаров конструкторы</a>
 <a href="/shop/konstruktory/arduino">Arduino</a> 
 <a href="/shop/konstruktory/plata">Плата</a> 
 <a href="/shop/konstruktory/pechatnaja-plata-detali">Печатная плата+детали</a> 
 <a href="/shop/konstruktory/pechatnaja-plata-v-sbor">Печатная плата в сборе</a> 
 </div>
 
<div class="collapsed"> 
<span>Led-Scale</span> 
 <a href="/shop/konstruktory/led-scale">Группа товаров Led-Scale</a> 
 <a href="/shop/konstruktory/led-scale/mitsubishi">Mitsubishi</a> 
 <a href="/shop/konstruktory/led-scale/honda">Honda</a> 
 <a href="/shop/konstruktory/led-scale/huandai">Huandai</a> 
 <a href="/shop/konstruktory/led-scale/ford">Ford</a> 
 <a href="/shop/konstruktory/led-scale/tayota">Tayota</a> 
 <a href="/shop/konstruktory/led-scale/lada">Лада</a> 
 <a href="/shop/konstruktory/led-scale/gaz">Газ</a> 
 <a href="/shop/konstruktory/led-scale/dop-ustrojstva">Доп. устройства</a> 
 </div> 
 
 <div class="collapsed"> 
<span>Источники тока</span>
 <a href="/shop/istochnika-toka">Группа товаров источники тока</a> 
 <a href="/shop/istochnika-toka/bloki-pitanija">Блоки питания</a> 

</div> </div>

CSS

div.sdmenu {
	width: 270px;
	font-family: Helvetica, sans-serif;
	font-size: 12px;
	padding-bottom: 5px;
	background: #D7291D no-repeat  right bottom;
	color: #ffffff;
}
div.sdmenu div {
	background: url(http://radio-constr71.ucoz.net/image/title.gif) repeat-x;
	overflow: hidden;
}
div.sdmenu div:first-child {
	background: url(http://radio-constr71.ucoz.net/image/title.gif) repeat-x;
}
div.sdmenu div.collapsed {
	height: 25px;
}
div.sdmenu div span {
	display: block;
	padding: 5px 25px;
	font-weight: bold;
	color: #ffffff;
	background: url(http://radio-constr71.ucoz.net/image/expanded.gif) no-repeat 10px center;
	cursor: default;
	border-bottom: 1px solid #ddd;
}
div.sdmenu div.collapsed span {
	background-image: url(http://radio-constr71.ucoz.net/image/collapsed.gif);
}
div.sdmenu div a {
	padding: 5px 10px;
	background: #eee;
	display: block;
	border-bottom: 1px solid #fff;
	color: #000;
}
div.sdmenu div a.current {
	background : #D7291D;
}
div.sdmenu div a:hover {
	background : #D7291D url(http://radio-constr71.ucoz.net/image/linkarrow.gif) no-repeat right center;
	color: #fff;
	text-decoration: none;
}

JavaScript

function SDMenu(id) {
	if (!document.getElementById || !document.getElementsByTagName)
		return false;
	this.menu = document.getElementById(id);
	this.submenus = this.menu.getElementsByTagName("div");
	this.remember = true;
	this.speed = 5;
	this.markCurrent = true;
	this.oneSmOnly = false;
}
SDMenu.prototype.init = function() {
	var mainInstance = this;
	for (var i = 0; i < this.submenus.length; i++)
		this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
			mainInstance.toggleMenu(this.parentNode);
		};
	if (this.markCurrent) {
		var links = this.menu.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++)
			if (links[i].href == document.location.href) {
				links[i].className = "current";
				break;
			}
	}
	if (this.remember) {
		var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)");
		var match = regex.exec(document.cookie);
		if (match) {
			var states = match[1].split("");
			for (var i = 0; i < states.length; i++)
				this.submenus[i].className = (states[i] == 0 ? "collapsed" : "");
		}
	}
};
SDMenu.prototype.toggleMenu = function(submenu) {
	if (submenu.className == "collapsed")
		this.expandMenu(submenu);
	else
		this.collapseMenu(submenu);
};
SDMenu.prototype.expandMenu = function(submenu) {
	var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
	var links = submenu.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
		fullHeight += links[i].offsetHeight;
	var moveBy = Math.round(this.speed * links.length);
	
	var mainInstance = this;
	var intId = setInterval(function() {
		var curHeight = submenu.offsetHeight;
		var newHeight = curHeight + moveBy;
		if (newHeight < fullHeight)
			submenu.style.height = newHeight + "px";
		else {
			clearInterval(intId);
			submenu.style.height = "";
			submenu.className = "";
			mainInstance.memorize();
		}
	}, 30);
	this.collapseOthers(submenu);
};
SDMenu.prototype.collapseMenu = function(submenu) {
	var minHeight =...