JSFiddle - React, Tailwind, and code Playground
HTML
<strong> input text : </strong> <input type="text"/><br /><br />
<strong> textarea : </strong> <textarea>lots of text here to make lines wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap</textarea><br /><br />
<strong> select : </strong> <select>
<option>option 1</option>
<option>option 2</option>
<option>option 3</option>
<option>option 4</option>
<option>option 5</option>
</select><br /><br />
<strong>scrolling div :</strong> <div id="scroll">lots of text here to make lines wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap and wrap</div><br /><br />
<div id="logcontainer">focus on : <div id="log"></div></div>
CSS
#logcontainer{padding:5px;border:1px solid #ccc;margin:2px;}
em{font-style:italic}
strong{font-weight:bold;}
#scroll{
overflow:auto;
height:100px;
width:300px;
}
JavaScript
document.activeElement.blur();
var log = $('#log');
setInterval(function(){
var focus = document.activeElement;
log.html(
focus.nodeName
+ ' ( <em>'+focus.toString()+'</em> )'
);
},100);