js mousemove 的疑问

一段有关拖拽的代码,在mousemove有些判断定位。在Ie8下显示正常,但是在IE7,IE6下拖拽的时候很卡。进过检查发现在mousemove开始运算前,预先对一个页面... 一段有关拖拽的代码,在mousemove 有些判断 定位。 在Ie 8下显示正常,但是在IE 7,IE 6下 拖拽的时候很卡。
进过检查发现在mousemove开始运算前 ,预先对一个页面中的元素进行操作(无论什么操作,只要写的操作就可以),将显著提升流畅性。
这就难以解释了,为什么多增加一步操作,能提高流畅性呢。
个人解释一:缓存么?也许我操作一下元素,js在运算后 能更加快速的进行显示
个人解释二:延迟丢失了么?因为mousemove有相关复杂的定位,因为来不及显示,导致拖拽的时候很卡。因为JS是单线程的 当预先操作元素的时候,js全部延迟下来,就后续的mousemove中 原本会被触发的点丢失掉了。导致了 显示的正常,而没有预先操作元素的时候,不断因为mousemove移动过程中 ,就进行计算,导致页面负载太大了,所以拖拽很卡。

看下图片 也许你们就明白了 ,为什么多加一句就流畅了呢。
展开
 我来答
匿名用户
2011-03-11
展开全部
在mousemove的时候可能会引起selectstart事件(就是会选取页面中的文本),你可以在IE 7,IE 6下增加<html>的这个属性unselectable = on试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式