Ruby's Louvre

每天学习一点点算法

导航

2013年1月21日 #

更好的清除文本选择

摘要: 在mass ui中许多缘件能用到拖拽操作,在拖拽中我们不可避免地要清除选择。早期我的实现是非常大众化的代码: draggable.clearSelection = window.getSelection ? function() { window.getSelection().removeAllRanges(); } : function() { document.selection.clear(); }此方法是放在mousemove中,因此调用非常频繁。但始终都会看到一点点蓝色的被选中的残影。因此这是出于了选择后才去消除。经不断改良,综合许... 阅读全文

posted @ 2013-01-21 23:13 司徒正美 阅读(2776) 评论(1) 推荐(1) 编辑

使用display:none有效减少回流造成的影响

摘要: UI库果然对性能非常考究,我在mousedown的回调中插入一个节点,然后修改其样式,结果导致整个文档的点击事件都触发不了。顺便一点,当我们点击页面时,依次发生mousedown => mouseup => click。如果我们在mousedown或mouseup这前两个环节的回调中加入许多耗性能的操作,就会引发点击事件触发不了。不幸的是,我的selectable踩坑了。selectable的设计是这样的,当我们点鼠标按下,我们插入一个节点,然后在mousemove回调中进行拖拽,画出一个可任意变动的矩形,然后这个矩形圈中或相交的节点就当作选中,加上一个类名进行变色。问题在于mou 阅读全文

posted @ 2013-01-21 22:31 司徒正美 阅读(2928) 评论(0) 推荐(0) 编辑