div {
width: 300px;
margin: 100px auto;
writing-mode: vertical-rl;
}
div span {
opacity:0;
transition: all 0.3s;
}
<div id="demo">
<span></span>
</div>
var colArr = ["拨灯书尽红笺也,","依旧无聊。","玉漏迢迢,","梦里寒花隔玉箫。", "几竿修竹三更雨,", "叶叶萧萧。", "分付秋潮,", "莫误双鱼到谢桥。"];
var delayCol = 0;
for (var col = 0; col < colArr.length; col ++) {
var str = colArr[col];
var oP = document.createElement('p');
var spanArr = [];
for (i = 0; i < str.length; i ++) {
var a = str.slice(i, i + 1);
var span = document.createElement('span');
span.innerText = a;
spanArr.push(span);
}
spanArr.forEach(function (item, index, arr) {
item.style.transitionDelay = delayCol + (index) * 0.3 + 's';
item.style.opacity = 0;
oP.appendChild(item);
setTimeout(function() {
item.style.opacity = 1;
}, 0)
});
delayCol = delayCol + (spanArr.length) * 0.3;
demo.appendChild(oP);
}