How can I change a word every 2-3 seconds using jQuery?
For example:
I have this:
<div>
<span>This is so</span>
<span>awesome</span>
</div>
... and I want the awesome to change into cool,fantastic,incredible and keep cycling with loop using fadeOut/fadeIn effect maybe?
Is it possible?
Thanks alot
(function(){
// List your words here:
var words = [
'awesome',
'incredible',
'cool',
'fantastic'
], i = 0;
setInterval(function(){
$('#changerificwordspanid').fadeOut(function(){
$(this).html(words[i=(i+1)%words.length]).fadeIn();
});
// 2 seconds
}, 2000);
})();
Give your span an id, and change changerificwordspanid
to the id of the span.
JSFiddle Example here
This should work. First, add an id to the span that you want to rotate the text on. E.g.,
<span id="rotate-word">awesome</span>
And in your JavaScript:
$(function() {
var words = ['cool', 'fantastic', 'incredible', 'awesome'],
index = 0,
$el = $('#rotate-word')
setInterval(function() {
index++ < words.length - 1 || (index = 0);
$el.fadeOut(function() {
$el.text(words[index]).fadeIn();
});
}, 3000);
});
You can see this in action here: http://jsfiddle.net/DMeEk/
Apply an ID to the span and change its contents using .text()
or .html()
<div>
<span>This is so</span>
<span id="container">awesome</span>
</div>
var texts = new Array();
texts[0] = "cool";
texts[1] = "awesome";
var i = 0;
function changeText()
{
$("#container").fadeOut("fast", function(){
$(this).html(texts[i++]);
$(this).fadeIn();
});
if(i > texts.length)
i = 0;
}
setInterval('changeText()', 2000);
You can easily do this using setInterval
and few lines of code.
Working demo
var keywords = ["awesome", "cool", "fantastic", "incredible"];
var count = 1;
setInterval(function(){
$("span.keyword").fadeOut(400, function(){
$(this).html(keywords[count]);
count++;
if(count == keywords.length)
count = 0;
$(this).fadeIn(400);
});
}, 2000);
$(document).ready(function(){
setInterval(function(){
var current = jQuery(".animate-span .active");
var cIndex = jQuery(".animate-span span").index(current), cLength = jQuery(".animate-span span").length, nextSpan = null;
if(cIndex<(cLength-1)){
nextSpan = jQuery(".animate-span span").eq(cIndex+1)
}else{
nextSpan = jQuery(".animate-span span").eq(0);
}
nextSpan.animate({top:0,opacity:1},500).addClass("active");
current.animate({top:45,opacity:0},500,function(){
jQuery(this).css({top:-40});
}).removeClass("active");
},2000)
});
live demo here