|
|

楼主 |
发表于 2023-5-22 11:56
|
显示全部楼层
代码:
- <style>
- #mydiv {
- margin: 20px auto;
- padding: 8px 15px;
- width: 600px;
- height: 400px;
- font: bold 2em / 50px sans-serif;
- text-shadow: 1px 1px 2px #000;
- border: 1px solid gray;
- cursor: pointer;
- position: relative;
- }
- </style>
- <div id="mydiv"></div>
- <script>
- let ar = `白居易·忆江南\n\n江南好,\n风景旧曾谙。\n日出江花红胜火,\n春来江水绿如蓝。\n能不忆江南?`.split('\n');
- let ziIdx = 0, chars = [], timerId = null,timerFlag = true;
- for(let j = 0; j < ar.length; j ++) {
- let tmpAr = ar[j].split('');
- if(tmpAr.length === 0) chars.push('<br>');
- for(let k = 0; k < tmpAr.length; k ++) {
- let tmpStr = '<span style="color: #' + Math.random().toString(16).substr(-6) + '">' + tmpAr[k] + '</span>' + (k < ar[j].length - 1 ? '' : '<br>');
- chars.push(tmpStr);
- }
- }
- let output = () => {
- mydiv.innerHTML = '';
- for(let j = 0; j < ziIdx; j ++) {
- mydiv.innerHTML += chars[j];
- }
- ziIdx < chars.length ? ziIdx ++ : ziIdx = 0;
- timerId = setTimeout(output,400);
- }
- timerId = setTimeout(output,200);
- mydiv.onclick = () => {
- timerFlag ? clearTimeout(timerId) : timerId = setTimeout(output,200);
- timerFlag = !timerFlag;
- }
- </script>
复制代码
|
|