javascript – Chrome / V8在某些元素上缓慢onmousemove()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Chrome / V8在某些元素上缓慢onmousemove(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1707字,纯文字阅读大概需要3分钟。
内容图文
![javascript – Chrome / V8在某些元素上缓慢onmousemove()](/upload/InfoBanner/zyjiaocheng/823/a341bef9c8f248b6a8b1ccae5dc9b794.jpg)
我正在开发一个基于jQuery的音乐播放器,它在主要部分有很长的项目列表(无序列表,每个< li>中有< div>元素,有关艺术家,专辑和标题的信息).
您可以在此处访问它的临时公共版本:
http://music.sixteennet.co.uk/?anonymous
(所有歌曲都是公共版本的哑巴链接,所以不要打扰任何东西:P)
首先,快速描述一下究竟是什么:
左侧是侧边栏,显示即将播放的歌曲列表.用户在搜索/单击艺术家后选择主列表中的歌曲(单击,按住Shift键单击,按住Ctrl键单击,您知道演练),然后通过点击或拖放将它们添加到左侧的播放列表中.我已经完成了所有这些工作(这个问题不是关于如何构建Javascript用户界面).
问题:$(window).mousemove(),. mouseup()和.mousedown()包含用于查看框的功能,其高度以像素为单位(16 *主列表中所选歌曲的数量)[每个<李>是16px高].当移动鼠标时,此框随之移动,直到鼠标在播放列表上方,播放列表改变颜色,如果用户决定鼠标()(取消单击),则所选歌曲将添加到播放列表中. 唯一的一点是,当鼠标移动时,当前可见的选定歌曲框移动,在谷歌浏览器中,该框的移动是非常滞后的,但只有当鼠标悬停在主歌曲列表上时(但是,CPU的使用率在整个时间框显示).在Firefox 6和IE 9中,整个运动流畅,CPU使用率不是100%(即使在Athlon 64 3500上).我在两台PC上重复了这个测试,一台运行Windows 7,另一台运行Ubuntu Linux. 我非常怀疑这是谷歌Chrome的一个错误,但如果有人有善意通过源代码并告诉我问题是什么(如果有的话)……你是我的上帝:) 编辑:我之所以说Chrome / V8是因为Safari使用相同的渲染引擎(WebKit)没有这个问题(尽管它不如Firefox / IE9 / Opera那么流畅)
解决方法:
我将回答我自己的问题,因为我找到了一个解决方案:
在盒子上运行这个jQuery函数修复了滞后问题:
$.fn.disableSelection = function() {
return this.each(function() {
$(this).attr('unselectable', 'on')
.css({
'-moz-user-select':'none',
'-webkit-user-select':'none',
'user-select':'none',
'::selection':'none',
})
.each(function() {
this.onselectstart = function() { return false; };
});
});
};
内容总结
以上是互联网集市为您收集整理的javascript – Chrome / V8在某些元素上缓慢onmousemove()全部内容,希望文章能够帮你解决javascript – Chrome / V8在某些元素上缓慢onmousemove()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。