javascript - Box that displays random divs -
i trying create kind of box suppose display random divs. example fun facts animals. found code, wrote on own , works way: 1. random div loaded when page loading 2. next random divs loaded everytime user click button: "random fun facts"
in code below button "rundom fun facts" works once. how can make work continousely? mean way can click on 100 times , display 100 various divs. , here second question: when using example 100 divs (there many fun facts animals) code below long, there simpler way kind of creating loop? there tons of sliders couldn't find need. appreciated.
<div id="box"> <div id="funfact1"> <p> squirrels plant thousands of new trees each year forgetting put acorns. </p> </div><!-- end funfact1 --> <div id="funfact2"> <p>macaques in japan use coins buy vending machine snacks. </p> </div><!-- end funfact2 --> <div id="funfact3"> <p>japanese macaques make snowballs fun. </p> </div><!-- end funfact3 --> <div id="funfact4"> <p>dogs’ nose prints unique human fingerprints , can used identify them. </p> </div><!--end funfact4 --> <div id="buttondiv"> <button id="buttonshuffle">random fun fact</button> </div><!-- end buttondiv --> </div><!-- end div box --> <script type="text/javascript"> randomnumber = math.floor(math.random()*4+1); window.onload = function() { if (randomnumber == 1) { document.getelementbyid("funfact1").style.display = "inline"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber == 2) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "inline"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber == 3) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "inline"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber == 4) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "inline"; } } randomnumber1 = math.floor(math.random()*4+1); document.getelementbyid("buttonshuffle").onclick=function() { if (randomnumber1 == 1) { document.getelementbyid("funfact1").style.display = "inline"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber1 == 2) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "inline"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber1 == 3) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "inline"; document.getelementbyid("funfact4").style.display = "none"; } if (randomnumber1 == 4) { document.getelementbyid("funfact1").style.display = "none"; document.getelementbyid("funfact2").style.display = "none"; document.getelementbyid("funfact3").style.display = "none"; document.getelementbyid("funfact4").style.display = "inline"; } } </script>
if want keep div , write less repetitive code, can try this. in general, when write code, try identify repetitions , export in functions.
window.onload = function() { // show random fact on load randomfact() // show random fact on button click document.getelementbyid("buttonshuffle").addeventlistener('click', randomfact) } function randomfact () { // generate random var random = math.floor(math.random() * 4) // facts var funfacts = document.getelementsbyclassname('funfact') // hide facts (var = 0; < funfacts.length; i++) { funfacts[i].style.display = 'none' } // show 1 funfacts[random].style.display = 'inline' }
Comments
Post a Comment