我做了一个div 可以滑动的, 从屏幕一个地方 滑动到另外一个地方核心语句是mydiv.style.left=xxxx+"px";window.setInterval("somefunction()",10);意思 每10毫秒 移动一次div的位置。
问题:
在IE下, 如果当前这个页面 图片很少,那么这个div就能平滑的滑动。 但是如果页面中图片多了,这个div就滑动的很卡,明显看出是一步一步慢慢滑过去的。在火狐下没问题,不管网页体积多大 图片有多少, 都能平滑的滑动。
为什么?怎么解决?
问题:
在IE下, 如果当前这个页面 图片很少,那么这个div就能平滑的滑动。 但是如果页面中图片多了,这个div就滑动的很卡,明显看出是一步一步慢慢滑过去的。在火狐下没问题,不管网页体积多大 图片有多少, 都能平滑的滑动。
为什么?怎么解决?
为什么别人的网站 内容N多 图片N多
里面的滑片还是很 平滑的滑动啊
首先,如果是大量的重复性执行代码的话,不要这样写,这样相当于重复的查询节点属性,效率低下,改成:
var divleft = mydiv.style.left;
left = xxxx+ "px";
其次,LZ使用了setInterval(),这个定时器是很少使用的,在网络繁忙或者节点之多的时候,会出现后一个调用可能会在前一个调用结束之前启动,应该用setTimeout来模拟定时器;
如下:
function movefunction(){
divleft += step; //增加你要移动的距离
if(divlfet<maxwidth){ //如果坐标未超过你所定义的最大范围,那么继续延迟调用函数
setTimeout(movefunction,10);
}
}
最后,这个应该是影响不太大,传递给setTimeOut和setInterval的第一个参数不建议用字符串传递,会造成一定的性能损失!
在window.onload事件中运行滑动看看
如果用css减少脚本会稍微好点吧?