jquery 鼠标跟随边界
Boundaries with jquery mouse follow
我创建了一个fiddlehttp://jsfiddle.net/2g4sjbr0/1/
我想要的是当鼠标不在红色区域时矩形停止跟随鼠标。此外,当您的鼠标不在红色区域时,矩形应该会消失。当重新进入红色区域时,它应该会重新出现并继续跟随您的鼠标。
想不通,先谢谢了
HTML:
<div id="area">
<div id="rectangle"></div>
</div>
CSS:
#area {
width: 200px;
height: 100vh;
background-color: red;
}
#rectangle {
position: absolute;
width: 25px;
height: 25px;
background-color: black;
}
JQuery:
$(document).on('mousemove', function (e) {
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});
});
你可以简单地做:
$("#area").mouseleave(function() {
$("#rectangle").hide();
});
$("#area").mouseenter(function() {
$("#rectangle").show();
});
更新了您的fiddle:http://jsfiddle.net/2g4sjbr0/3/
我认为需要某种优化,因为我认为鼠标有时会超出区域..
http://jsfiddle.net/mkdizajn/5vp6Lthm/
$('#area').on('mousemove', function (e) {
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});
});
fiddle
q基本解决! :D
$(document).on('mousemove', function (e) {
var y_a = $('#area').offset().top + ($('#area').height()*1 - 25);
var x_a = $('#area').offset().left + 200-25;
console.log( [e.pageX,e.pageY,x_a, y_a] );
if ((e.pageX < x_a) & (e.pageY < y_a)){
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});}
});
我创建了一个fiddlehttp://jsfiddle.net/2g4sjbr0/1/
我想要的是当鼠标不在红色区域时矩形停止跟随鼠标。此外,当您的鼠标不在红色区域时,矩形应该会消失。当重新进入红色区域时,它应该会重新出现并继续跟随您的鼠标。
想不通,先谢谢了
HTML:
<div id="area">
<div id="rectangle"></div>
</div>
CSS:
#area {
width: 200px;
height: 100vh;
background-color: red;
}
#rectangle {
position: absolute;
width: 25px;
height: 25px;
background-color: black;
}
JQuery:
$(document).on('mousemove', function (e) {
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});
});
你可以简单地做:
$("#area").mouseleave(function() {
$("#rectangle").hide();
});
$("#area").mouseenter(function() {
$("#rectangle").show();
});
更新了您的fiddle:http://jsfiddle.net/2g4sjbr0/3/
我认为需要某种优化,因为我认为鼠标有时会超出区域..
http://jsfiddle.net/mkdizajn/5vp6Lthm/
$('#area').on('mousemove', function (e) {
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});
});
fiddle q基本解决! :D
$(document).on('mousemove', function (e) {
var y_a = $('#area').offset().top + ($('#area').height()*1 - 25);
var x_a = $('#area').offset().left + 200-25;
console.log( [e.pageX,e.pageY,x_a, y_a] );
if ((e.pageX < x_a) & (e.pageY < y_a)){
$('#rectangle').css({
left: e.pageX,
top: e.pageY
});}
});