Reputation: 100
I have a div with content that needs to change over a 3 second interval. I would like the "top-3" section to update every 3 seconds with 3 more names.
<div class="grid-80 mobile-grid-100">
<section class="top-3">
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#1 Juan Pablo Montoya</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#2 Tony Stewart</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#3 Mark Martin</p>
</div>
</section>
</div>
So it would go from the above and then 3 seconds later it will show,
<div class="grid-80 mobile-grid-100">
<section class="top-3">
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#4 New Name</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#5 New Name</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#6 New Name</p>
</div>
</section>
</div>
I know there has to be a more lightweight way to do this rather than running a content slider plugin. Thanks!
Upvotes: 0
Views: 1375
Reputation: 2081
Maybe something like this?
<html>
<head>
</head>
<body>
<div class="grid-80 mobile-grid-100">
<section class="top-3">
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#1 John</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#2 Anna</p>
</div>
<div class="grid-33 mobile-grid-100">
<p class="pwr-ranking-name">#3 Marta</p>
</div>
</section>
</div>
<script type="text/javascript">
var count = 3;
var names = ['John', 'Anna', 'Marta', 'Mike', 'Alexandre', 'Olivier', 'Elisabeth', 'Angelina', 'Sophie'];
var namesContainer = document.getElementsByClassName('pwr-ranking-name');
setInterval(function(){
for(var i = 0; i<3; i++){
namesContainer[i].innerHTML = '#' + (count+1) + ' ' + names[count];
count++;
if(count == names.length){
count = 0;
};
}
}, 3000);
</script>
</body>
</html>
Upvotes: 2