当鼠标悬停在某个元素上时,我想用自定义图像替换鼠标光标。我首先将鼠标设定为
cursor: none;
当它盘旋元素的时候。
然后,我读出游标在悬停元素上的位置,并将图形的css位置设置为带有轻微偏移的光标位置,这样鼠标光标就不是在图形上,而是仍然在悬停区域上。
我在这里做了一把小提琴:http://jsfiddle.net/TimG/6XeWK/
现在它运作得很安静。问题是当你移动鼠标非常快的时候,鼠标光标离开悬停区域并在图像上“滑动”--当然,这使得无法确定鼠标相对于悬停区域的位置(非常快地移动到黑色悬停区域的左下角)。我可以通过将图形设置为
display: none;
在更改图像的css位置之前和更改后将其设置为
display: block;
再来一次。不幸的是,这并不能充分防止这一问题。
那么,有什么办法可以防止这种情况发生呢?还是有办法把鼠标光标放在手后?有点像为鼠标光标设置z索引(我的猜测是,这是不可能的,因为它不是DOM元素)?
寻求任何帮助。
发布于 2012-08-24 12:07:22
问题
有办法把鼠标光标放在手后吗?
当您快速移动鼠标时,您看到鼠标指针的原因是,您偶尔会在指针上使用游标,因此没有应用.hoverbox:hover
样式。
在mousemove
事件绑定中,为cursor: none
、添加css样式,并将添加到指针中,即使不小心移动到指针上,也不应该再看到鼠标指针。在CSS中将cursor: none
应用于.pointer:hover
也不起作用。
$(".hoverBox").mousemove(function(e) {
var tWidth = $(window).width();
var position = $(this).position();
var fingerPosition = position.top + e.clientY + 15;
var fingerWidth = $(this).parent().find('.pointer').width();
$('.pointer').css('display', 'none').css('top', fingerPosition).css('left', e.clientX - fingerWidth - 15).css('display', 'block').css('cursor', 'none');
});
演示 -指针结束时隐藏光标
编辑
我无法让cursor: url()
在fiddler中工作,但我猜想这主要是因为fiddler通过fiddle.jshell.net
呈现输出,而图像可能必须是服务器本地的。
但是,如果您只想使用指针手,那么您也可以使用cursor: pointer style
。
CSS:
.hoverBox {
width: 400px;
height: 300px;
background: black;
cursor: pointer;
}
演示 -使用默认指针游标
https://stackoverflow.com/questions/12108897
复制相似问题