javascript - 如何通过 Javascript 在屏幕上显示前 20 个词然后显示下 20 个词?

标签 javascript html

我在单个标签中有一个字符串,如下例所示,我想在屏幕上显示前 20-25 个单词,然后是下一个,依此类推。当显示 20 个单词时,必须隐藏其余文本。

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Egestas integer eget aliquet nibh praesent. Rhoncus aenean vel elit scelerisque. Proin sed libero enim sed.</p>

所以我想要的结果是第一个显示

Lorem ipsum dolor sit amet,

然后

conectetur adipiscing elit

.......

tincidunt augue interdum.

当它结束时,它会再次从第一句开始,依此类推。

最佳答案

很简单:

const sentence = document.getElementById("sentence");
const words = sentence.innerText.split(" ");

let sentences = [];

words.forEach((word, index) => {
  if ((index + 1) % 20 == 0) sentences.push("\0")
  sentences.push(word)
})

sentences = sentences.join(" ").split(" \0 ")

let index = 0;

sentence.innerText = sentences[index];
index++;

setInterval(() => {
  if (!sentences[index]) index = 0;
  sentence.innerText = sentences[index];
  index++;
}, 1000) // change to whatever you like
<p id="sentence">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Egestas integer eget aliquet nibh praesent. Rhoncus aenean vel elit scelerisque. Proin sed libero enim sed. Cum sociis natoque
  penatibus et. Accumsan sit amet nulla facilisi morbi tempus. Habitasse platea dictumst quisque sagittis purus. Ultrices vitae auctor eu augue ut lectus arcu bibendum at. In massa tempor nec feugiat nisl pretium. Sollicitudin tempor id eu nisl nunc mi
  ipsum faucibus. Platea dictumst vestibulum rhoncus est. Magna ac placerat vestibulum lectus. Ultrices neque ornare aenean euismod elementum. Faucibus in ornare quam viverra orci sagittis eu volutpat odio. Accumsan tortor posuere ac ut consequat. Commodo
  nulla facilisi nullam vehicula. Ut morbi tincidunt augue interdum.</p>

我建议使用更智能的算法来获取单词(按空格分隔可能并不总是合适的)

关于javascript - 如何通过 Javascript 在屏幕上显示前 20 个词然后显示下 20 个词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68064790/

相关文章:

javascript - 如何修复 'warning Expected ' this' to be use by class method ' eslint 错误?

javascript - 在播放列表中从头到尾跳过问题,反之亦然

javascript - 使用 Bootstrap 模态代替 Colorbox

JavaScript 音频点击不起作用

javascript - 允许用手指缩放谷歌地图 - PhoneGap for Android

javascript - chart.js 线图 : Fill area above line as opposed to below and to the right

javascript 排序算法不起作用 - 有什么明显的我做错了吗?

php - 检查 PHP 是否存在 HTML5 sessionStorage 值(与 cookie 一样)

javascript - 应用功能时,所有选择框都需要单击 2 次才能打开下拉菜单?

html - Bootstrap 3 : input-group mixed with non input-groups different sizes