I have a span, eg:
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
and I'd like the contents of that span to change every few moments between a list of terms, so the contents might change to be:
<span id="rotate">then</span>
<span id="rotate">thus</span>
and so on. I'd like the text to fade out and then the new text fade in.
Whats the best way to do this via jquery?
I have a span, eg:
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
and I'd like the contents of that span to change every few moments between a list of terms, so the contents might change to be:
<span id="rotate">then</span>
<span id="rotate">thus</span>
and so on. I'd like the text to fade out and then the new text fade in.
Whats the best way to do this via jquery?
Share Improve this question asked May 5, 2010 at 9:05 Peter ClarkPeter Clark 2631 gold badge3 silver badges6 bronze badges1 Answer
Reset to default 14You could do something like this, storing the current index on the element rotating using .data()
to support it multiple places as well:
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
This fades the first term in, waits 2 seconds, fades it out, changes the text and repeats....just adjust the values to what you want :)
Here's a quick demo so you can see it in action