JSFiddle - React, Tailwind, and code Playground
by Tenderfeel
HTML
<textarea id="text" cols="50" rows="10">ニャーッハッハッハッハァ!!
毛皮の触り心地に騙されたな小僧が!!
我は地獄より召喚されし大悪魔、ノルウェージャンフォレストキャット公爵である!
貴様には既に我が刻印を刻み込んだ!諦めて下僕になるがよい!</textarea>
<button id="convert">Convert</button>
<a href="#result">show</a>
<a href="#home">hide</a>
<div id="home"></div>
<div id="result" cols="50" rows="10"></div>
CSS
.t {
opacity:0;
}
#home:target {
}
#home:target ~ #result .t{
-webkit-transition-duration:0s !important;
-webkit-transition-delay:0s !important;
}
#result {
visibility:hidden;
}
#result:target{
visibility:visible;
}
#result:target .t {
opacity:1;
-webkit-transition-property:all;
-webkit-transition-timing-function:ease-out;
}
JavaScript
window.addEvents({
'domready': function(){
var html = [];
$('convert').addEvent('click', function(){
var text = $('text').value;
var t = 0;
var d = 0.1;
//console.log(text);
for(var i =0, z = text.length; i < z; i++){
var str = text.charAt(i);
var code = text.charCodeAt(i);
var style = [
'-webkit-transition-delay:'+t+'s',
'-moz-transition-delay:'+t+'s',
'transition-delay:'+t+'s',
'-webkit-transition-duration:'+d+'s',
'-moz-transition-duration:'+d+'s',
'transition-duration:'+d+'s'
];
//console.log(str, code, str.match(/\s+/),str.match(/[\n\r]/));
//html.push(new Element('span', {text:text.charAt(i)}));
console.log(t);
switch(code){
case 10:
//console.log(str,code);
html.push('<br>');
t+=0.2;
break;
default:
html.push('<span class="t" style="'+style.join(';')+'">' + str + '</span>');
t+=0.08;
break;
}
}
$('result').empty().set('html', html.join(''));
console.log(html[10]);
});
}
});