jQuery提供了简单的方法来检测鼠标是否悬停在某个元素上。这主要通过mouseenter
和mouseleave
事件,或者更简单的hover()
方法来实现。
$(document).ready(function() {
$("#yourElement").hover(
function() {
// 鼠标进入时的处理
console.log("鼠标悬停在元素上");
$(this).css("background-color", "yellow");
},
function() {
// 鼠标离开时的处理
console.log("鼠标离开元素");
$(this).css("background-color", "");
}
);
});
$(document).ready(function() {
$("#yourElement")
.mouseenter(function() {
// 鼠标进入时的处理
console.log("鼠标进入元素");
$(this).addClass("hovered");
})
.mouseleave(function() {
// 鼠标离开时的处理
console.log("鼠标离开元素");
$(this).removeClass("hovered");
});
});
如果需要实时检查元素是否被悬停,可以创建一个全局变量来跟踪状态:
$(document).ready(function() {
var isHovered = false;
$("#yourElement")
.mouseenter(function() {
isHovered = true;
})
.mouseleave(function() {
isHovered = false;
});
// 在任何时候检查状态
function checkHover() {
if(isHovered) {
console.log("元素当前被悬停");
} else {
console.log("元素当前未被悬停");
}
}
});
<!DOCTYPE html>
<html>
<head>
<title>jQuery悬停检测示例</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
#hoverBox {
width: 200px;
height: 200px;
background-color: #f0f0f0;
border: 1px solid #ccc;
margin: 50px auto;
text-align: center;
line-height: 200px;
}
.hovered {
background-color: #ffeb3b !important;
box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
</style>
</head>
<body>
<div id="hoverBox">悬停在我上面</div>
<div id="status"></div>
<script>
$(document).ready(function() {
var hoverCount = 0;
$("#hoverBox").hover(
function() {
$(this).addClass("hovered");
hoverCount++;
$("#status").text("悬停状态: 是 (次数: " + hoverCount + ")");
},
function() {
$(this).removeClass("hovered");
$("#status").text("悬停状态: 否 (次数: " + hoverCount + ")");
}
);
});
</script>
</body>
</html>
这个示例创建了一个简单的盒子,当鼠标悬停时会改变样式,并记录悬停次数。
没有搜到相关的文章