Прокручиваемое меню в JavaScript - PullRequest
0 голосов
/ 19 июля 2010

Я пытаюсь создать прокручиваемый список меню в JavaScript, и я следую инструкциям http://javascript.internet.com/navigation/menu-scroll.html

Но на моей странице ничего не появляется. Вот что я пробовал:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript" src="ScrollMenu.js"></script>
    <SCRIPT LANGUAGE="JavaScript">

<!-- Original:  Randy Bennett (rbennett@thezone.net) -->
<!-- Web Site:  http://home.thezone.net/~rbennett/utility/javahead.htm -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

    <!-- Begin
    function buildMenu() {
        speed=35;
        topdistance=100;
        items=6;
        y=-50;
        ob=1;
        if (navigator.appName == "Netscape") {
            v=".top=",dS="document.",sD="";
        }
        else {
            v=".pixelTop=",dS="",sD=".style";
        }
    }

    function scrollItems() {
        if (ob<items+1) {
            objectX="object"+ob; y+=10; eval(dS + objectX + sD + v + y);
            if (y<topdistance) setTimeout("scrollItems()",speed);
            else y=-50, topdistance+=40, ob+=1, setTimeout("scrollItems()",speed);
        }
    }
// End -->
</SCRIPT>
</head>
<body onLoad="buildMenu(), scrollItems();">
    <a href="pic.html">hello</a>
    <a href="pic.html">Link 1!</a>
    <a href="pic.html">Link 1!</a>
    <a href="pic.html">Link 1!</a>
    <a href="pic.html">Link 1!</a>
    <a href="pic.html">Link 1!</a>
    <div id="object1" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 1!</a>
            </td>
        </table>
    </div>

    <div id="object2" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 2!</a>
            </td>
        </table>
    </div>

    <div id="object3" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 3!</a>
            </td>
        </table>
    </div>

    <div id="object4" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 4!</a>
            </td>
        </table>
    </div>

    <div id="object5" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 5!</a>
            </td>
        </table>
    </div>

    <div id="object6" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">
        <table border=1 width=150 bgcolor=80FFFF>
            <td>
                <a href="pic.html">Link 6!</a>
            </td>
        </table>
    </div>

</body>
</html>

Любая помощь, пожалуйста? :)

Большое спасибо C.

Ответы [ 2 ]

1 голос
/ 19 июля 2010

Переход на код Кронаса - это хорошо.Я действительно заставил код работать, но он / она поспорил со мной.

Вы также должны заметить, что нагрузка на ваше тело должна содержать не запятую, а точку с запятой.

т.е. у вас есть:

<body onLoad="buildMenu(), scrollItems();">

Что должно быть

<body onLoad="buildMenu(); scrollItems();">

В вашем стиле HTML у вас должно быть

visibility: visible;

НЕ

visibility: show;

Причина, по которой оригинальный код не работает, в том, что он ОЧЕНЬ стар.(в интернете)

1 голос
/ 19 июля 2010

Измените scrollItems () На этот код

function scrollItems() {
    if (ob<items+1) {
        objectX="object"+ob; y+=10; 
        document.getElementById(objectX).style.top = y + "px"
        if (y<topdistance) setTimeout("scrollItems()",speed);
        else y=-50, topdistance+=40, ob+=1, setTimeout("scrollItems()",speed);
    }
}

Посмотрите, пожалуйста, работает ли он у вас нормально

...