<body style="text-align: left;">
    <div id="marquees">
        <ul>
            <asp:Literal ID="ListMarquee" runat="server"></asp:Literal>
        </ul>
    </div>    <script type="text/javascript">
        var marqueesHeight = 230;
        var stopscroll = false;
        with (marquees) {
            style.width = 0;
            style.height = marqueesHeight;
            style.overflowX = "visible";
            style.overflowY = "hidden";
            noWrap = true;
            onmouseover = new Function("stopscroll=true");
            onmouseout = new Function("stopscroll=false");
        }
        document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');        var preTop = 0; 
        var currentTop = 0;        function init() {
            templayer.innerHTML = "";
            while (templayer.offsetHeight < marqueesHeight) {
                templayer.innerHTML += marquees.innerHTML;
            }
            marquees.innerHTML = templayer.innerHTML + templayer.innerHTML;
            setInterval("scrollUp()", 60);
        }
        document.body.onload = init;        function scrollUp() {
            if (stopscroll == true) return;
            preTop = marquees.scrollTop;
            marquees.scrollTop += 1;
            if (preTop == marquees.scrollTop) {
                marquees.scrollTop = templayer.offsetHeight - marqueesHeight;
                marquees.scrollTop += 1;
            }
        }
    </script></body>这是.net的前台,为什么IE就能滚动正常, firefox就出问题

解决方案 »

  1.   

    ff要写成
    document.getElementById("templayer"),而不是 templayer
      

  2.   

    直接引用ID号当作其DOM元素 在Firefox中是不认的。
    所以,最好使用getElementById来取另外,注意,长度值一定要加单位: style.height = marqueesHeight+"px";
    不加在IE中起作用,Firefox中是不起作用的。
    详细参加 跨浏览器开发 的帖子:http://topic.csdn.net/u/20100729/14/2294df8c-c38c-4b26-b35b-e6ee9c92d9f1.html?15147
      

  3.   

    <body style="text-align: left;">
        <div id="marquees">
            <ul>
                <asp:Literal ID="ListMarquee" runat="server"></asp:Literal>
            </ul>
        </div>    <script type="text/javascript">
            var marqueesHeight = 230;
            var stopscroll = false;
            
            with (document.getElementById("marquees")) {
                style.width = 0;
                style.height = marqueesHeight+"px";
                style.overflowX = "visible";
                style.overflowY = "hidden";
                noWrap = true;
                onmouseover = new Function("stopscroll=true");
                onmouseout = new Function("stopscroll=false");
            }
            document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');        var preTop = 0;
            var currentTop = 0        function init() {
                document.getElementById("templayer").innerHTML = "";
                while (document.getElementById("templayer").offsetHeight < marqueesHeight) {
                    document.getElementById("templayer").innerHTML += document.getElementById("marquees").innerHTML;
                }
                document.getElementById("marquees").innerHTML = document.getElementById("templayer").innerHTML + document.getElementById("templayer").innerHTML;
                setInterval("scrollUp()", 60);
            }
            document.body.onload = init;        function scrollUp() {
                if (stopscroll == true) return;
                preTop = document.getElementById("marquees").scrollTop;
                document.getElementById("marquees").scrollTop += 1;
                if (preTop == document.getElementById("marquees").scrollTop) {
                    document.getElementById("marquees").scrollTop = document.getElementById("templayer").offsetHeight - marqueesHeight;
                    document.getElementById("marquees").scrollTop += 1;
                }
            }
        </script></body>改成这样了,但是问题还是存在
      

  4.   

    正确的写法
    <body>
      <div id="marquees">
      <ul>
       <li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
       <li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
       <li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
       <li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
       <li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
      </ul>
      </div>  <script type="text/javascript">
      var marqueesHeight = 230;
      var stopscroll = false;
      with (document.getElementById("marquees")) {
      style.width = 200;
      style.height = marqueesHeight;
      style.overflowX = "visible";
      style.overflowY = "hidden";
      noWrap = true;
      onmouseover = new Function("stopscroll=true");
      onmouseout = new Function("stopscroll=false");
      }
      document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');  var preTop = 0; 
      var currentTop = 0;  function init() {
      document.getElementById("templayer").innerHTML = "";
      while (document.getElementById("templayer").offsetHeight < marqueesHeight) {
      document.getElementById("templayer").innerHTML +=document.getElementById("marquees").innerHTML;
      }
      document.getElementById("marquees").innerHTML = document.getElementById("templayer").innerHTML + document.getElementById("templayer").innerHTML;
      setInterval("scrollUp()", 60);
      }
      
      window.onload = init;  function scrollUp() {
      if (stopscroll == true) return;
      preTop = document.getElementById("marquees").scrollTop;
      document.getElementById("marquees").scrollTop += 1;
      if (preTop == document.getElementById("marquees").scrollTop) {
      document.getElementById("marquees").scrollTop = document.getElementById("templayer").offsetHeight - marqueesHeight;
     document.getElementById("marquees").scrollTop += 1;
      }
      }
      </script></body>
      

  5.   

    style.width = 0;就不显示内容了
      

  6.   

    5楼的兄弟,我要做的是列表里的内容就两条,然后他还是会滚动,内容重复关滚动,在IE中没问题,但是firefox就没能滚动,固定显示了三条内容