补充一句,这个代码也是我在网上找的,不是我自己写的,我JS很菜的说,呵呵

解决方案 »

  1.   

    哭,没人能解决还是分太少了
      

  2.   

    只是单纯的提取JS吗,还是要另外封装,要是单纯的提取到JS文件里,可能你哪里出错是因为调用的顺序不对-------------------------------
    pao.js//qswh's original and modifid by windy_sk <[email protected]> 20040120
    function reportError(msg,url,line) {
        var str = "You have found an error as below: \n\n";
        str += "Err: " + msg + " on line: " + line;
        alert(str);
        return true;
    }
    window.onerror = reportError;    
    var obj_marquee = document.getElementById("marquee");
    var repeat = null;
    var marquee_spd = 50;function marquee_init() {
        var obj_unit = obj_marquee.firstChild;
        var marquee_high = parseInt(obj_marquee.style.height);
        var marquee_wide = parseInt(obj_marquee.style.width);
        var unit_high = obj_unit.offsetHeight;
        var unit_wide = obj_unit.offsetWidth;
        var m = 0, n = 0, i = 0;
        var tmp = null;
        
        m = Math.ceil(marquee_wide / unit_wide);
        n = Math.ceil(marquee_high / unit_high);
        obj_unit.style.width = marquee_wide * (m+1);
        obj_unit.rows[0].cells[0].style.width = obj_marquee.style.width;
        
        for(i=0; i<m; i++) {
            tmp = obj_unit.rows[0].insertCell(-1);
            tmp.innerHTML = obj_unit.rows[0].cells[0].innerHTML;
            tmp.style.width = marquee_wide;
            tmp = null;
        }
        for(i=0; i<n; i++) {
            obj_marquee.appendChild(obj_unit.cloneNode(true));
        }
        return;
    }function marquee_show(direction) {
        switch(direction) {
            case "up":
                if(obj_marquee.scrollTop >= obj_marquee.children[1].offsetTop) {
                    obj_marquee.scrollTop -= obj_marquee.firstChild.offsetHeight;
                } else {
                    obj_marquee.scrollTop++;
                }
                break;
            case "down":
                if(obj_marquee.scrollTop <= 0) {
                    obj_marquee.scrollTop += obj_marquee.firstChild.offsetHeight;
                } else {
                    obj_marquee.scrollTop--;
                }
                break;
            case "left":
                if(obj_marquee.scrollLeft >= obj_marquee.firstChild.rows[0].cells[0].offsetWidth) {
                    obj_marquee.scrollLeft -= obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
                } else {
                    obj_marquee.scrollLeft++;
                }
                break;
            case "right":
                if(obj_marquee.scrollLeft <= 0) {
                    obj_marquee.scrollLeft += obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
                } else {
                    obj_marquee.scrollLeft--;
                }
                break;        default:
                break;
        }
        return;
    }function marquee_doit() {
        var direction = "";
        direction = obj_marquee.getAttribute("direction");
        if(direction != null) marquee_show(direction);
        direction = obj_marquee.getAttribute("direction2");
        if(direction != null) marquee_show(direction);
        return;
    }
    marquee_init();
    repeat = setInterval("marquee_doit()",marquee_spd);
    marquee.onmouseover = function() {clearInterval(repeat);}
    marquee.onmouseout = function() {repeat=setInterval("marquee_doit()",marquee_spd);}
    test.html
    -------------------------------------------------
    <div id="marquee" direction="up" style="overflow: hidden; height: 125px; width: 170px;">
        <table>
            <tr>
                <td id="tdPao" runat="server">
    <div>111111</div>
    <div>222222</div>
    <div>333333</div>
    <div>444444</div>
    <div>555555</div>
    <div>666666</div>
    <div>777777</div>
                </td>
            </tr>
        </table>
    </div>
    <script language="JavaScript" src="pao.js"></script>