日期:2014-05-16  浏览次数:20302 次

求一个js。。。或帮忙修改下
<div class="pxl_2" id="move"  style="overflow:hidden">
     <div class="pxl_2_1" id="seconde" style="width:<%=width%>px; height:140px;">        
         <asp:Repeater ID="rep" runat="server">
            <ItemTemplate>
            <div style="margin-left:10px; float:left" class="pic"><a href='products.aspx?protype=<%#Eval("firprotype") %>'><img src='<%#Eval("proimage") %>' class="img" /></a></div>
            </ItemTemplate>
           </asp:Repeater>             
        </div>
        <div id="demo2"></div>
       </div>

使中间的图片区域滚动起来。。。自己写了一个如下

<script>
    var speed = 30;
    var demo = document.getElementById("move");
    var demo1 = document.getElementById("seconde");
    var demo2 = document.getElementById("demo2");
    demo2.innerHTML = demo1.innerHTML;
    function myMarquee() {
        if (demo2.offsetWidth - demo.scrollLeft <= 0)
            demo.scrollLeft -= demo1.offsetWidth;
        else {
            demo.scrollLeft++;
        }
    }
    var MyMar = setInterval(myMarquee, speed);
    demo.onmouseover = function () { clearInterval(MyMar) }
    demo.onmouseout = function () { MyMar = setInterval(myMarquee, speed) }
</script>


可是不管用,调试说demo1.innerhtml的值为null
------解决方案--------------------
不知道你的js与html代码的位置关系,怀疑你的html元素还没显示就开始执行js了。
试试把js放到
<body>
</body>
下边
后者把js封装到一个函数
function showMarquee()
{
    var speed = 30;
    var demo = document.getElementById("move");
    var demo1 = document.getElementById("seconde");
    var demo2 = document.getElementById("demo2");
    demo2.innerHTML = demo1.innerHTML;
    function myMarquee() {
        if (demo2.offsetWidth - demo.scrollLeft <= 0)
            demo.scrollLeft -= demo1.offsetWidth;
        else {
            demo.scrollLeft++;
  &