Results 1 to 1 of 1

Thread: Browser Earthquake!

  1. #1
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,496
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default Browser Earthquake!

    This delightful little script, Browser Earthquake!, is so old that it no longer works even on the demo page using IE6. You guessed it, it is the doctype on the demo page that's causing the trouble. I took the liberty of updating this script to function with its current demo page's doctype (or none) and Mozilla including a style section update (yes, the original was not so old so as not to have had a style section) to make the message displayed a little more professional looking:

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <title>Earthquake</title>
    <style>
    #quakenotice{
    font:normal .9em Arial;
    position:absolute;
    width:22em;
    height:2.5em;
    border:2px solid black;
    background-color:lightyellow;
    visibility:hidden;
    padding: 1ex 1em 1ex 1em;
    }
    </style>
    </head>
    <body onLoad="earthquake()">
    <layer id="quakenotice_ns" width=300 height=55 bgColor=lightyellow visibility=hide></layer>
    <script>
    
    /*
    EarthQuake script-  Dynamic Drive (www.dynamicdrive.com)
    For full source code, installation instructions, 100's more DHTML scripts, and Terms Of Use, 
    Visit http://dynamicdrive.com
    */
    
    //configure the likelihood that an earthquake will occur (100% means always)
    var chance_of_occurence="100%"
    
    /////do NOT edit below this line/////////////
    var rector, svWth=0, svHgt=0, hrec
    var dom=document.getElementById&&!document.all
    //variable used to store the equivalency of the 10 rector scales (in the form of 1, 3, 6...etc)
    var rectorscale=new Array(1,3,6,9,12,15,18,21,24,27)
    chance_of_occurence=parseInt(chance_of_occurence)
    
    function iecompattest(){
    return (document.compatMode && document.compatMode.indexOf("CSS")!=-1)? document.documentElement : document.body
    }
    
    function earthquake(){
    //randomly assign a number from 1 to 10 to variable rectorindex
    rectorindex=Math.floor(Math.random()*10)
    //randomly assign one of element rectorscale into variable rector
    rector=rectorscale[rectorindex]
    hrec=Math.floor(rector/2+.5)
    if ((document.all||document.layers||dom)&&Math.floor(Math.random()*100)<=chance_of_occurence)
    quake()
    }
    
    function quake(){
    if ((dom)&&(top.window.outerHeight > screen.availHeight-rector||top.window.outerWidth > screen.availWidth-rector)){
    svHgt=top.window.outerHeight
    svWth=top.window.outerWidth
    if (top.window.outerHeight > screen.availHeight-rector)
    top.window.outerHeight = screen.availHeight-rector;
    if (top.window.outerWidth > screen.availWidth-rector)
    top.window.outerWidth = screen.availWidth-rector;
    top.window.moveTo(hrec,hrec)
    setTimeout("quake()",500)
    return;
    }
    //shake the browser's screen according to the random rector scale!
    for (i=0;i,i<20;i++){
    window.moveBy(0,rector)
    window.moveBy(rector,0)
    window.moveBy(0,-rector)
    window.moveBy(-rector,0)
    }
    if (dom){
    if (svHgt!==0){
    top.window.moveTo(0,0);
    top.window.outerHeight=svHgt
    }
    if (svWth!==0){
    top.window.outerWidth=svWth
    top.window.moveTo(0,0);
    }
    }
    // show quake message
    quakealert()
    }
    
    
    if (document.all||dom)
    document.write('<div id="quakenotice"></div>')
    
    function quakealert(){
    var quakemessage='An earthquake of magnitude <b>'+eval(rectorindex+1)+'</b> has just occured! Please stay calm...everything\'s fine now.'
    
    if (document.all||dom){
    qkmsg=(dom)? document.getElementById('quakenotice') : document.all.quakenotice
    qkmsg.innerHTML=quakemessage
    //position quake message in center of screen
    qkmsg.style.left=(dom)? window.pageXOffset+window.innerWidth/2-qkmsg.offsetWidth/2+'px' : iecompattest().scrollLeft+iecompattest().clientWidth/2-qkmsg.offsetWidth/2+'px'
    qkmsg.style.top=(dom)? window.pageYOffset+window.innerHeight/2-qkmsg.offsetHeight/2+'px' : iecompattest().scrollTop+iecompattest().clientHeight/2-qkmsg.offsetHeight/2+'px'
    qkmsg.style.visibility="visible"
    setTimeout("qkmsg.style.visibility='hidden'",5000)
    }
    else if (document.layers){
    quakemsg_ns=document.quakenotice_ns
    quakemsg_ns.document.write(quakemessage)
    quakemsg_ns.document.close()
    quakemsg_ns.left=pageXOffset+window.innerWidth/2-quakemsg_ns.document.width/2
    quakemsg_ns.top=pageYOffset+window.innerHeight/2-quakemsg_ns.document.height/2
    quakemsg_ns.visibility="show"
    setTimeout("quakemsg_ns.visibility='hide'",5000)
    }
    }
    </script>
    
    </body>
    </html>
    Last edited by jscheuer1; 05-21-2005 at 05:26 PM. Reason: add info
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •