gpt4 book ai didi

javascript - 光标离开 Canvas 后,如何使用 MouseLeave 将光标改回原来的状态?

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:14 25 4
gpt4 key购买 nike

我正在尝试实现一个十字准线光标,一旦光标进入 Canvas ,它将通过 MouseEnter 激活。但是,光标变为十字准线后,即使离开 Canvas ,它仍然是十字准线。我希望十字准线光标仅在 Canvas 内激活,并且一旦离开 Canvas ,光标就会恢复为默认光标。

CSS:

#crosshair-h {
width: 100%;
}

#crosshair-v {
height: 100%;
}

.hair {
position: fixed;
top:0; left:0;
margin-top: -3px;
margin-left: -2px;
background: transparent;
border-top: 1px dotted #000;
border-left: 1px dotted #000;
pointer-events: none;
z-index: 2;
}

#mousepos {
position: absolute;
top:0; left:0;
padding: 10px;
margin: 10px;
font: 14px arial;
color: #fff;
background: rgba(0,0,0,0.5);
border-radius: 24px;
z-index: 1;
}

JavaScript:

$(document).ready(function() {
// Setup our variables
var cH = $('#crosshair-h'),
cV = $('#crosshair-v');

$(this).on('mousemove touchmove', function(e) {
var x = e.pageX - 1;
var y = e.pageY - 1;
cH.css('top', e.pageY);
cV.css('left', e.pageX);

$('#mousepos').css({
top: e.pageY + 'px',
left: e.pageX + 'px'
}, 800);
$('#mousepos').text( "X: " + x + "px, Y: " + y + "px");
e.stopPropagation();
});

// Anchor Hover Effects
$("a").hover(function() {
$(".hair").stop().css({borderColor: "#fff"}, 800)},
function() {
$(".hair").stop().css({borderColor: "black"},800)
});
e.stopPropagation();
});

感谢任何帮助,谢谢!

最佳答案

如果默认十字线光标就足够了,您可以使用简单的 CSS 悬停规则来实现:

canvas {
border: 1px solid grey;
height: 50px;
width: 100px;
}
canvas:hover {
cursor: crosshair;
}
<canvas></canvas>

如果您确实需要自定义的,可以在 Canvas 上使用 mouseleave 或 mouseout 事件来删除 css 类。

关于javascript - 光标离开 Canvas 后,如何使用 MouseLeave 将光标改回原来的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52092398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com