首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以将鼠标光标放在元素后面,或者鼠标光标有z索引?

是否可以将鼠标光标放在元素后面,或者鼠标光标有z索引?
EN

Stack Overflow用户
提问于 2012-08-24 11:50:38
回答 1查看 3.2K关注 0票数 3

当鼠标悬停在某个元素上时,我想用自定义图像替换鼠标光标。我首先将鼠标设定为

代码语言:javascript
运行
复制
cursor: none;

当它盘旋元素的时候。

然后,我读出游标在悬停元素上的位置,并将图形的css位置设置为带有轻微偏移的光标位置,这样鼠标光标就不是在图形上,而是仍然在悬停区域上。

我在这里做了一把小提琴:http://jsfiddle.net/TimG/6XeWK/

现在它运作得很安静。问题是当你移动鼠标非常快的时候,鼠标光标离开悬停区域并在图像上“滑动”--当然,这使得无法确定鼠标相对于悬停区域的位置(非常快地移动到黑色悬停区域的左下角)。我可以通过将图形设置为

代码语言:javascript
运行
复制
display: none;

在更改图像的css位置之前和更改后将其设置为

代码语言:javascript
运行
复制
display: block;

再来一次。不幸的是,这并不能充分防止这一问题。

那么,有什么办法可以防止这种情况发生呢?还是有办法把鼠标光标放在手后?有点像为鼠标光标设置z索引(我的猜测是,这是不可能的,因为它不是DOM元素)?

寻求任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-08-24 12:07:22

问题

有办法把鼠标光标放在手后吗?

当您快速移动鼠标时,您看到鼠标指针的原因是,您偶尔会在指针上使用游标,因此没有应用.hoverbox:hover样式。

mousemove事件绑定中,为cursor: none、添加css样式,并将添加到指针中,即使不小心移动到指针上,也不应该再看到鼠标指针。在CSS中将cursor: none应用于.pointer:hover也不起作用。

代码语言:javascript
运行
复制
$(".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:

代码语言:javascript
运行
复制
.hoverBox {
    width: 400px;
    height: 300px;
    background: black;
    cursor: pointer;
}

演示 -使用默认指针游标

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12108897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档