The Arcive of vBulletin Modifications Site. |
|
Display groups of content in random order Details »»
|
|||||||||||||||||||||||||||
|
Display groups of content in random order
Developer Last Online: Jul 2010
This is not just another banner rotator mod...
This will not increase your server load... This will not break your XHTML vadlidation... This will allow you to define an array of content (banners, links, text, whatever), then have them display in a random order with each page refresh. ![]() Copy this code and save it as random.js or download the attached file: Code:
function randomizeContent(classname){
var contents=randomizeContent.collectElementbyClass(classname)
contents.text.sort(function() {return 0.5 - Math.random();})
for (var i=0; i<contents.ref.length; i++){
contents.ref[i].innerHTML=contents.text[i]
contents.ref[i].style.visibility="visible"
}
}
randomizeContent.collectElementbyClass=function(classname){ //return two arrays containing elements with specified classname, plus their innerHTML content
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
var contentobj=new Object()
contentobj.ref=new Array() //array containing references to the participating contents
contentobj.text=new Array() //array containing participating contents' contents (innerHTML property)
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1){
contentobj.ref[contentobj.ref.length]=alltags[i]
contentobj.text[contentobj.text.length]=alltags[i].innerHTML
}
}
return contentobj
}
Copy the follow to your 'Additional CSS' section of your style Code:
.group1{
visibility: hidden;
}
Code:
<script type="text/javascript" src="clientscript/random.js"></script> Code:
<div class="group1">
Content 1
</div>
<div class="group1">
Content 2
</div>
<div class="group1">
Content 3
</div>
<div class="group1">
Content 4
</div>
<div class="group1">
Content 5
</div>
<script type="text/javascript">
//randomize order of contents with DIV class="group1"
randomizeContent("group1")
</script>
Live Demo - Look at the small banners on the right. Refresh the page to watch them rotate. Supporters / CoAuthors Show Your Support
|
|||||||||||||||||||||||||||
| Comments |
|
#2
|
||||
|
||||
|
|
|
#3
|
||||
|
||||
|
thanks m8 will look at this later
|
|
#4
|
|||
|
|||
|
Screenshot please
|
|
#5
|
||||
|
||||
![]() I'll include some, but I don't see how that will be helpful. Just imagine any group of DIV's that you would like to show in a random order.
|
|
#6
|
|||
|
|||
|
This is really cool
and I am looking forward to using it.One quick question. If I have fifteen content items for example and want to display just the first three. How do I change the script? Thank you |
![]() |
|
|