JSFiddle - React, Tailwind, and code Playground
by secretgspot
HTML
<header><div>
<h1>QuickBenchmark</h1>
<p><a href="http://www.w3.org/html/logo/" target="_blank">HTML5 Powered with CSS3 / Styling, Graphics, 3D & Effects, and Semantics</a></p>
</div></header>
<section id="secCodes"><div>
<code class="a">
<span class="reserved">var</span> <var class="funcName">A</var> = <span class="reserved">function</span>(){<br />
<span class="indent">
<textarea id="initA" name="initA" class="init"></textarea>
<span class="reserved">var</span> <var>t</var> = +<span class="reserved">new</span> <span class="global">Date</span>;<br />
<span class="reserved">for</span>(<span class="reserved">var</span> <var>i</var>=<span class="number">0</span>; <var>i</var><<input type="Number" id="iMax" name="iMax" class="num" value="100" />; ++<var>i</var>){<br />
<span class="indent">
<textarea id="loopA" name="loopA" class="loop">document.body.appendChild( document.createTextNode("A") );</textarea>
</span>
}<br />
<var>t</var> = +<span class="reserved">new</span> <span class="global">Date</span> - <var>t</var>;<br />
<textarea id="endA" name="endA" class="end"></textarea>
<span class="reserved">return</span> <var>t</var>;<br />
</span>
};<br />
</code>
<code class="b">
<span class="reserved">var</span> <var class="funcName">B</var> = <span class="reserved">function</span>(){<br />
<span class="indent">
<textarea id="initB" name="initB" class="init"></textarea>
<span class="reserved">var</span> <var>t</var> = +<span class="reserved">new</span> <span class="global">Date</span>;<br />
<span class="reserved">for</span>(<span class="reserved">var</span> <var>i</var>=<span class="number">0</span>; <var>i</var><<input type="Number" id="iMax2" name="iMax2" class="num" value="100" />; ++<var>i</var>){<br />
<span...
CSS
/**
* @charset utf-8
* @modified February 10, 2011
* @description QuickBenchmark
* @author Tohl SMALLFIELD
*/
/*------------------------------------------------------------------------------
reset
------------------------------------------------------------------------------*/
body,
h1,h2,
header,section,article,footer,hgroup,
div,p,span,em,a,code,var,
input,button,textarea{
margin: 0;
padding: 0;
background: no-repeat scroll left top;
border-style: none;
font-style: normal;
outline: none;
font-size: 100%;
}
header,section,article,footer,hgroup{
display: block;
}
/*------------------------------------------------------------------------------
clearFix
------------------------------------------------------------------------------*/
header > div:after,
section#secResults h2:after
{
display: block;
visibility: hidden;
clear: both;
height: 0;
line-height: 0;
font-size: 0;
content: ".";
}
/*------------------------------------------------------------------------------
テキスト画像代替
------------------------------------------------------------------------------*/
h1,
header a,
button,
section#secSandbox h2,
nav#navControls label,
p#controlConfig,
td strong,
footer a
{
display: block;
margin: 0;
padding: 0;
border-style: none;
text-indent: -10000px;
text-decoration: none;
text-align: left;
}
/*------------------------------------------------------------------------------
非表示部
------------------------------------------------------------------------------*/
input#toggleIframes
{
position: absolute;
top: -9999px;
left: -9999px;
z-index: -9999;
width: 0;
height: 0;
overflow: hidden;
}
/*------------------------------------------------------------------------------
...
JavaScript
//<![CDATA[
/**
* @charset utf-8
* @modified February 10, 2011
* @description QuickBenchmark
* @author Tohl SMALLFIELD
*/
(function(Data, Graph, Table, Sandbox){/////////////////////////////////////////////////////////////
var doc = this.document,
bdy = doc.body,
$ = function(xpr){ return doc.querySelector(xpr); },
$$ = function(xpr){ return doc.querySelectorAll(xpr); },
//エラー時ハイライト用
codeA = $("code.a"),
codeB = $("code.b"),
//入力フィールド
interval = $("#interval"),
loopA = $("#loopA"),
loopB = $("#loopB"),
initA = $("#initA"),
initB = $("#initB"),
endA = $("#endA"),
endB = $("#endB"),
loopNum = $("#iMax"),
loopNum2 = $("#iMax2"),
testNum = $("#testNum"),
//実行ボタン
btn = $("#btnRun button"),
//テストコード作成用
sbA = new Sandbox("#secSandbox section.a article", "A").reset(),
sbB = new Sandbox("#secSandbox section.b article", "B").reset();
/**
* Textarea 自動リサイズ 設定
*
* @see http://jsdo.it/tsmallfield/auto_resize_textarea
*/
Array.prototype.forEach.call($$("#secCodes textarea"), function(elm){
var sty = elm.style,
cch;
elm.onkeydown = elm.onkeypress = elm.onkeyup = elm.onfocus = function me(){
var val = elm.value,
rgx = /\r?\n/g,
lns = 0;
if(val !== cch){
cch = val;
//まずは改行の数でチェック(ES5:正規表現リテラルで直接書くと無限ループ)
while( rgx.exec(val) ) ++lns;
elm.rows = lns || 1;//0だとエラー@IE
//折り返している場合を考慮しscrollHeightで調整
sty.height = "auto";
sty.height = elm.scrollHeight + "px";
//レンダリングが追いつかない?とき用(主にIE)
setTimeout(function(){
sty.height = elm.scrollHeight + "px";
}, 0);
}
return me;
}();
});
/**
* iframe 表示/非表示
*/
...