Results 1 to 10 of 10

Thread: Floating Menu Script

  1. #1
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Floating Menu Script

    Floating Menu Script
    http://www.dynamicdrive.com/dynamici...staticmenu.htm

    I am using a slightly edited version of this script and I want to know if there is a way to put it in a js file, like this:

    <script type="text/javascript" language=JavaScript src="script/menu.js"></script>

    I have been testing this out on this page:

    http://astartiel.cabspace.com/test1.html

    Here is the contents of menu.js:

    <html>
    <body>
    <script>
    if (!document.layers)
    document.write('<div id="divStayTopLeft" style="position:absolute">')
    </script>

    <layer id="divStayTopLeft">

    <!--EDIT BELOW CODE TO YOUR OWN MENU-->
    <table border="0" width=130 cellspacing="0" cellpadding="0">
    <tr>
    <td width="100%">
    <p align="left"><b><font size="4">Site Menu:</font></b></td>
    </tr>
    <tr>
    <td width="100%" visibility:no>
    <p align="left">
    <a href=main.html>Start Page</a><br>
    <a href=apologygw.html>Shrub Apology</a><br>
    <a href=bio.html>My Biography</a><br>
    <a href=http://astartiel.123guestbook.com/>My Guestbook</a><br>
    <a href=income.html>My Income Project</a><br>
    <a href=MyResume.html>My Resume</a><br>
    <a href=http://astartae_.livejournal.com>My LiveJournal</a><br>
    <a href=http://astartae.deviantart.com>My DeviantArt</a><br>
    <a href=songs4.html>My Favorite Lyrics</a><br>
    <a href=favmovies.html>My Favorite Movies</a><br>
    <a href=links3.html>My Favorite Links</a><br>
    <a href=quotes3.html>Motivational Quotes</a><br>
    <a href=sethlinks2.html>Seth & Jane Roberts</a><br>
    <a href=littlebook.html>Tweety's Little Book</a><br>
    <a href=search2.html>Search Google</a><br>
    <a href=mailto:astartiel@gmail.com>Email Me</a><br>
    <a href=http://www.percevalpress.com>Perceval Press</a><br>
    </td>
    </tr>
    </table>
    <!--END OF EDIT-->
    </layer>


    <script type="text/javascript">
    /*
    Floating Menu script- Roy Whittle (http://www.javascript-fx.com/)
    Script featured on/available at http://www.dynamicdrive.com/
    This notice must stay intact for use
    */

    //Enter "frombottom" or "fromtop"
    var verticalpos="fromtop"

    if (!document.layers)
    document.write('</div>')

    function JSFX_FloatTopDiv()
    {
    var startX = 3,
    startY = 150;
    var ns = (navigator.appName.indexOf("Netscape") != -1);
    var d = document;
    function ml(id)
    {
    var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
    if(d.layers)el.style=el;
    el.sP=function(x,y){this.style.left=x;this.style.top=y;};
    el.x = startX;
    if (verticalpos=="fromtop")
    el.y = startY;
    else{
    el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
    el.y -= startY;
    }
    return el;
    }
    window.stayTopLeft=function()
    {
    if (verticalpos=="fromtop"){
    var pY = ns ? pageYOffset : document.body.scrollTop;
    ftlObj.y += (pY + startY - ftlObj.y)/8;
    }
    else{
    var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
    ftlObj.y += (pY - startY - ftlObj.y)/8;
    }
    ftlObj.sP(ftlObj.x, ftlObj.y);
    setTimeout("stayTopLeft()", 10);
    }
    ftlObj = ml("divStayTopLeft");
    stayTopLeft();
    }
    JSFX_FloatTopDiv();
    </script>
    </body>
    </html>
    So far I cannot get this to work. Can anyone tell me what I'm doing wrong here?
    Last edited by Astartiel; 07-12-2006 at 06:58 AM.

  2. #2
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    If anyone could help me with this it would really be helpful. Thanks.

  3. #3
    Join Date
    Apr 2006
    Posts
    429
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    dunno if this is really helpful, but have u tried removing the external js file and
    just place the whole menu as instructed in the DD url
    Code:
    Simply insert the below code to the END of your document, right above the </BODY> tag.

  4. #4
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Yes, but I don't want to do that. I know it is possible to have all the other pages "call" one file. That way if I need to change something on the menu, I just have to change one file rather than twenty or more. Understand where I'm going here? So, just doing what you suggest (which I am doing atm, but I have it at the top of the page so the menu loads first instead of last, for slow internet users like me) would kind of defeat the point, wouldn't it? Thanks for the suggestion though.

  5. #5
    Join Date
    Apr 2006
    Posts
    429
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    yeah i understand where you're going here

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

    Default

    Well, you cannot put straight HTML in an external .js file. The supporting HTML markup that is used by the script must remain on the page or be included there via other methods. Only the script itself can be made external using this method. Here is my mini-tutorial on how to make a script external:

    Use a text editor to save the script, call it 'file_name.js' where 'file_name' can be any valid file name of your choosing. Substitute the name of your external .js file for some.js in the below:

    HTML Code:
    <script src="some.js" type="text/javascript"></script>
    Common problems arise when:

    1 ) The script file is not in the directory specified. In the above example it must be in the same directory as the page(s) that use it. Below, it can be in the scripts directory off of the root of a domain:

    HTML Code:
    <script src="http://www.somedomain.com/scripts/some.js" type="text/javascript"></script>
    2 ) Opening, closing and/or 'hiding' tags are left in the external file. This means that you must strip:
    Code:
    <script>
    <!--
    and
    Code:
    //-->
    </script>
    and any of their many variations from the beginning and end of the external file.

    3 ) The external call (<script src="some.js" type="text/javascript"></script>) is not inserted into the page at the correct spot. The external call must be inserted at the same place on the page where the script was/would have been.

    4 ) Paths to other files (if) used by the script are no longer valid due to its location. This is only a problem if the external script is kept in a different directory than the page it was working on when it was an internal script. To correct this, use absolute paths inside the script. Absolute path examples:

    Code:
    http://www.somedomain.com/images/button.gif
    
    http://www.somedomain.com/~mysitename/index.html
    5 ) Inappropriately combining two or more scripts into one external file. Usually external scripts can be combined if one knows enough about scripting to do so properly. Even then it is possible to overlook something.

    A rule of thumb when testing is, if it won't work on the page, it won't work as an external file either.

    One other thing, if this is a DD script or any script that requires the credit remain for legal use, include the credit in the on page call, ex:

    HTML Code:
    <script src="some.js" type="text/javascript">
    /***********************************************
    * IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
    * Visit DynamicDrive.com for hundreds of original DHTML scripts
    * This notice must stay intact for legal use
    ***********************************************/
    </script>
    Make sure to retain all the 'decorations', as these include begin and end javascript comment delimiters without which the script won't function.
    - John
    ________________________

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

  7. #7
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Ok, I'm understanding some of this. Is there a way to make the javascript access a text file or html file with the menu list on it? That would be a solution to the problem I'm having.

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

    Default

    Well, since as it says on the demo page:

    1) Support for arbitrary rich HTML, so you can float "anything."
    That would mean that you could float something like this:

    HTML Code:
    <iframe width="130" height="600" src="menu.htm"></iframe>
    Then on menu.htm you could have your table or whatever. Iframes are a little tricky but usually can be worked out to your satisfaction using their attributes and/or style as well as sometimes style on the external page. For links on a page in an iframe to open in the top page, you need to use something like so:

    HTML Code:
    <a href="some.htm" target="_top">Some Link</a>
    There also are server side includes that can be done if your host supports PHP or ASP. I've heard of a 'shared border' in MS FP but don't know much about it or if it would work with this.

    Finally, you could write your HTML code to the page using javascript's document.write() method but, this is not such a good idea. It would leave folks without javascript with no menu at all.
    - John
    ________________________

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

  9. #9
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Thanks so much. I will try that out and tell you if it worked. I learned basic HTML back around 1995 and the world of the web has changed by leaps and bounds since then. It's all good changes but most of it is beyond my desire to learn. ;-)

  10. #10
    Join Date
    Jul 2006
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Well, I've got it working! Thanks so much for your help!
    Go to http://astartiel.cabspace.com to see it in action.

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
  •