鼠标指针在拖动事件中一直闪烁
mouse pointer keeps blinking during drag event
所以我在树中有一些项。我使用本地javascript实现拖放,因为我使用GWT及其库对我不可用。树应该支持复制项目(拖动项目并将其放置在另一个项目中)和重新排序项目(在项目之间拖动项目并放置)。我试图根据鼠标位置来确定这个动作,但问题是在拖动事件期间,指针一直在闪烁,例如在"手"图标和"加号"图标之间切换。这就是我在第一个原型中所做的只是CSS的改变:
$doc.TreeOnReorderOver = function(ev) {
ev.preventDefault();
var rect = ev.target.getBoundingClientRect();
var top = rect.top;
var bottom = rect.bottom;
var height = bottom - top;
ev.target.style.cursor='none';
if(ev.clientY >= top && ev.clientY < top + height/4) { //reorder top
ev.target.style.backgroundColor = 'transparent';
ev.target.style.borderStyle = 'solid none none none';
ev.target.style.borderWidth = '3px';
ev.target.style.borderColor = '#D1E4EB';
}
if(ev.clientY >= top + height/4 && ev.clientY < bottom - height/4) { //drop in
ev.target.style.border = 'none';
ev.target.style.backgroundColor = '#D1E4EB';
}
if(ev.clientY >= bottom - height/4 && ev.clientY < bottom) { //reorder bottom
ev.target.style.backgroundColor = 'transparent';
ev.target.style.borderStyle = 'none none solid none';
ev.target.style.borderWidth = '3px';
ev.target.style.borderColor = '#D1E4EB';
}
};
有什么办法解决这个问题吗?
这个问题实际上是最新的。您已将光标设置为在移动的对象上没有指针:
ev.target.style.cursor='none';
所以,只要你的鼠标悬停在目标上(我猜是你拖动的对象),它就不会有指针。
拖动对象时,光标首先移动(悬停在其他元素上),然后将对象移动到光标的位置。这将导致您的光标切换回指针。
请尝试为拖动的持续时间设置document.body.style.cursor='none';
。
相关文章:
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 使用jQuery以红色和黑色闪烁文本
- 我的Tizen应用程序在点击时会闪烁
- IE6在启用/禁用文本字段上闪烁
- .scroll()函数在上次更新后在谷歌chrome中定位闪烁
- 页面加载之间闪烁
- 创建闪烁“;文本“;在javascript中
- 如何使用按键避免图像闪烁
- 我是不是一直在为图像标签强制固定图像大小
- 使用setInterval()函数进行图像闪烁
- React Router一直给我一个警告:你不能更改<路由器路由>
- 1种颜色的Javascript闪烁文本更长
- addClass,它更改bg图像,但在第一次加载时没有闪烁
- reactjs重新渲染时画布闪烁
- 我创建了一个jQuery幻灯片,但它一直在重复相同的图像
- Flowplayer视频一直在隐藏的背景中播放
- 即使被信号处理程序中断,node.js代码也会一直运行到完成吗
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- JavaScript:谷歌一直在使用的JS框架
- 鼠标指针在拖动事件中一直闪烁