我做了一个div 可以滑动的, 从屏幕一个地方 滑动到另外一个地方核心语句是mydiv.style.left=xxxx+"px";window.setInterval("somefunction()",10);意思 每10毫秒 移动一次div的位置。
问题:
在IE下, 如果当前这个页面 图片很少,那么这个div就能平滑的滑动。 但是如果页面中图片多了,这个div就滑动的很卡,明显看出是一步一步慢慢滑过去的。在火狐下没问题,不管网页体积多大 图片有多少, 都能平滑的滑动。
为什么?怎么解决?

解决方案 »

  1.   

    ie滑动效果本来就卡 我用jquery的slide方法做滑动在ie下就明显感觉卡
      

  2.   

    我就用ie8啊, 真卡
    为什么别人的网站 内容N多 图片N多
    里面的滑片还是很 平滑的滑动啊
      

  3.   

    mydiv.style.left=xxxx+"px";
    首先,如果是大量的重复性执行代码的话,不要这样写,这样相当于重复的查询节点属性,效率低下,改成:
    var divleft = mydiv.style.left;
    left = xxxx+ "px";
    其次,LZ使用了setInterval(),这个定时器是很少使用的,在网络繁忙或者节点之多的时候,会出现后一个调用可能会在前一个调用结束之前启动,应该用setTimeout来模拟定时器;
    如下:
    function movefunction(){
      divleft += step; //增加你要移动的距离
      if(divlfet<maxwidth){  //如果坐标未超过你所定义的最大范围,那么继续延迟调用函数
        setTimeout(movefunction,10);
     }
    }
    最后,这个应该是影响不太大,传递给setTimeOut和setInterval的第一个参数不建议用字符串传递,会造成一定的性能损失!
      

  4.   

    在拉动的函数加上 return false; 就好了.
      

  5.   

    尽量少用脚本就行了啊。改用CSS啊。
      

  6.   


    在window.onload事件中运行滑动看看
      

  7.   


    如果用css减少脚本会稍微好点吧?