这段代码直接可以运行,但是加了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这样的声明文件就不能正常运行了,请教大家该如何修改?
<div id="div1" style="cursor:hand;position:absolute;width:500;height:190;overflow:hidden;border:1 solid red" onmouseover="clearTimeout(scrl);" onmousemove="getpos()" onmouseout="change(1);"><img src=http://www.yihaonet.net/images/out500b.jpg onload="change(1);"></div>
<script> 
var scrl,direction="right"; 
var x,xold,xdiff, i=1; 
function change(start){ 
if(direction == "right"){     
    if(div1.scrollTop+190 < div1.scrollHeight){
         div1.scrollTop += 190; 
 }
 else{
   div1.scrollTop = 0; 
 } 
}
else{
 if(div1.scrollTop-190 > 0){
  div1.scrollTop -= 190; 
 }
 else{
   div1.scrollTop = div1.scrollHeight; 
 }
} if(start) scrl = setTimeout("change(1)",100); 
else clearTimeout(scrl); 
} function getpos(){
x = event.clientX; 
xdiff = x - xold; 
xold = x; 
if(xdiff>0) direction = "right"; 
if(xdiff<0) direction = "left"; 
change(0); 
} </script> 

解决方案 »

  1.   

    div1.scrollTop+190 < div1.scrollHeight不能在文档中直接访问id的值.要用getElementById.你在开有firebug的firefox是会看到所有过时的语法提示
      

  2.   

    请看 跨浏览器开发 的帖子:【分享】警惕缺失单位的CSS长度值
    加了 DOCTYPE后,浏览器会运行在标准模式下。
    这时候,你没有单位的长度值会失效。<!DOCTYPE HTML>
    <div id="div1" style="cursor:hand;position:absolute;width:500px;height:190px;overflow:hidden;border:1px solid red"
         onmouseover="clearTimeout(scrl);" onmousemove="getpos()" onmouseout="change(1);">
        <img src="http://www.yihaonet.net/images/out500b.jpg" onload="change(1);">
    </div>
    <script>
        var scrl,direction = "right";
        var x,xold,xdiff, i = 1;
        function change(start) {
            if (direction == "right") {
                if (div1.scrollTop + 190 < div1.scrollHeight) {
                    div1.scrollTop += 190;
                } else {
                    div1.scrollTop = 0;
                }
            } else {
                if (div1.scrollTop - 190 > 0) {
                    div1.scrollTop -= 190;
                } else {
                    div1.scrollTop = div1.scrollHeight;
                }
            }
            if (start) scrl = setTimeout("change(1)", 100); else clearTimeout(scrl);
        }
        function getpos() {
            x = event.clientX;
            xdiff = x - xold;
            xold = x;
            if (xdiff > 0) direction = "right";
            if (xdiff < 0) direction = "left";
            change(0);
        }
    </script>
      

  3.   

    LZ  这个问题解决了吗  我也是这个问题 能不能告诉我啊   急 啊    大半夜的  加我qq  395841542   谢谢