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);