使用jquery在数组的范围内定期更改文本

Pet*_*ark 6 javascript jquery jquery-ui

我有一个跨度,例如:

<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
Run Code Online (Sandbox Code Playgroud)

并且我希望该范围的内容在术语列表之间每隔几分钟改变一次,因此内容可能会变为:

<span id="rotate">then</span>
<span id="rotate">thus</span>
Run Code Online (Sandbox Code Playgroud)

等等.我希望文本淡出然后新文本淡入.

什么是通过jquery做到这一点的最好方法?

Nic*_*ver 14

你可以这样做,将当前索引存储在旋转的元素上,.data()以支持多个位置:

var terms = ["term 1", "term 2", "term 3"]; //array of terms to rotate

function rotateTerm() {
  var ct = $("#rotate").data("term") || 0;
  $("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct])
              .fadeIn().delay(2000).fadeOut(200, rotateTerm);
}
???????????????????$(rotateTerm); //start it on document.ready
?
Run Code Online (Sandbox Code Playgroud)

这会消失第一个任期,等待2秒,淡出,更改文本并重复....只需将值调整为您想要的值:)

这是一个快速演示,您可以看到它的实际效果