想让点击向右时能看到滑动的效果,为什么不行啊<html>
<head>
<title>heh</title>
<style type="text/css">
body {
margin:0;
padding:0;
}
ul,ol {
margin:0;
padding:0;
}
td div{
width:150px;
height:170px;
border:solid 1px #060;
}
</style>
</head>
<body>
<input type="button" onclick="left(this)" value="left"/><input type="button" onclick="right(this)" value="right"/>
<div style="border:solid 1px #06c;height:200px;width:90%;overflow:hidden" id="inner">
<table>
<tr>
<td><div>a</div></td>
<td><div>b</div></td>
<td><div>c</div></td>
<td><div>d</div></td>
<td><div>e</div></td>
<td><div>f</div></td>
<td><div>g</div></td>
<td><div>h</div></td>
<td><div>i</div></td>
<td><div>j</div></td>
<td><div>k</div></td>
<td><div>l</div></td>
<td><div>m</div></td>
<td><div>n</div></td>
<td><div>o</div></td>
</tr>
</table>
</div>
</body>
<script type="text/javascript"> var d=document.getElementById("inner");
var left=function(obj) {
//alert(d.scrollLeft);
d.scrollLeft-=156;

var right=function(obj) {
// d.scrollLeft+=156;
for(var i=0;i<156;i++) {
    (function(i){
        setTimeout(function() {
            d.scrollLeft+=1;
        },100);
    })(i)
}
}
</script>
</html>

解决方案 »

  1.   

    恩,试了下,在ie下可以显示效果。FF下不行,原因是ff下把setTimeout(function() {
                    d.scrollLeft+=1;
                },100);
    中间“优化”了。直接将156这个offset加上来,所以看不到效果...
      

  2.   


    呃,我试了下,IE确实可以,Chrome也不行啊,
    哪位帮忙看看?
      

  3.   

    应该不是因为这个scrollLeft这个属性获取的值都没有单位的
      

  4.   

    你试试scrollLeft用不用加float   ?
      

  5.   

    在ie下有效果的原因是ie运行太慢所以看到
      

  6.   

    var e=0
    var right=function(obj) {
    //    d.scrollLeft+=156;
    e=d.scrollLeft+156
    run()
    }var run = function(){
    if(d.scrollLeft>=e){d.scrollLeft=e;return;}
    d.scrollLeft+=1;
    setTimeout(run,10);
    }改这样看看