Javascript 如何在光标离开画布后使用MouseLeave将其更改回原来的位置?
我试图实现一个十字光标,一旦光标进入画布,它将通过MouseEnter激活。但是,在光标更改为十字线后,即使光标离开画布,它仍然保持为十字线。我希望十字光标仅在画布内激活,并且在光标离开画布后恢复为默认光标 CSS:Javascript 如何在光标离开画布后使用MouseLeave将其更改回原来的位置?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我试图实现一个十字光标,一旦光标进入画布,它将通过MouseEnter激活。但是,在光标更改为十字线后,即使光标离开画布,它仍然保持为十字线。我希望十字光标仅在画布内激活,并且在光标离开画布后恢复为默认光标 CSS: #crosshair-h { width: 100%; } #crosshair-v { height: 100%; } .hair { position: fixed; top:0; left:0; margin-top: -3px; margin-l
#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悬停规则执行此操作:
画布{
边框:1px纯灰;
高度:50px;
宽度:100px;
}
画布:悬停{
光标:十字线;
}
如果默认十字光标足够,您可以使用一个简单的CSS悬停规则:
画布{
边框:1px纯灰;
高度:50px;
宽度:100px;
}
画布:悬停{
光标:十字线;
}
您不能在画布上使用css规则吗?@jonatjano我正在使用一个自定义十字线,如代码笔中所示:“我希望十字线光标仅在画布内激活”-然后将mousemove事件绑定到画布开始,而不是整个文档,并添加一个mouseout处理程序,再次隐藏光标元素…?你不能在画布上使用css规则吗?@jonatjano我正在使用一个自定义十字线,如此代码笔所示:“我希望十字线光标仅在画布内激活”-然后将mousemove事件绑定到画布开始,而不是整个文档,并添加一个mouseout处理程序,再次隐藏游标元素…?