本文介绍: 项目场景:项目场景:使用jquery实现鼠标移入目标框出现悬浮框功能问题描述类型1:一个目标框和一个悬浮框 #hoverBox { display: none; /* 初始状态隐藏 */}#targetElement{ width: 100px; height: 100px; border: red solid 1px;} <div id=”hoverBox“> <!– 悬浮框内容 –> <
项目场景:
问题描述
#hoverBox {
display: none; /* 初始状态隐藏 */
}
#targetElement{
width: 100px;
height: 100px;
border: red solid 1px;
}
<div id="hoverBox">
<!-- 悬浮框内容 -->
<h1>hello world</h1>
</div>
<div id="targetElement">
</div>
$(document).ready(function() {
// 当鼠标移入目标元素时显示悬浮框
$('#targetElement').mouseenter(function() {
//$('#hoverBox').fadeIn(); // 使用淡入动画显示悬浮框
// 或使用其他动画效果,例如:
// $('#hoverBox').slideDown(); // 使用滑动动画显示悬浮框
$('#hoverBox').show(); // 直接显示悬浮框,无动画效果
$('#targetElement').hide();
});
// 当鼠标移出目标元素时隐藏悬浮框
$('#targetElement').mouseleave(function() {
//$('#hoverBox').fadeOut(); // 使用淡出动画隐藏悬浮框
// 或使用其他动画效果,例如:
// $('#hoverBox').slideUp(); // 使用滑动动画隐藏悬浮框
$('#hoverBox').hide(); // 直接隐藏悬浮框,无动画效果
$('#targetElement').show();
});
});
.hoverBox {
display: none; /* 初始状态隐藏 */
}
.targetElement{
width: 100px;
height: 100px;
border: red solid 1px;
}
<div class="targetElement" data-hoverbox="#hoverBox1">
<!-- 目标元素的内容 -->
</div>
<div class="targetElement" data-hoverbox="#hoverBox2">
<!-- 目标元素的内容 -->
</div>
<!-- 悬浮框元素 -->
<div id="hoverBox1" class="hoverBox">
<h1>hello1</h1>
</div>
<div id="hoverBox2" class="hoverBox">
<!-- 悬浮框2的内容 -->
<h1>hello2</h1>
</div>
$(document).ready(function() {
// 共享的事件处理函数
function showHoverBox() {
var hoverBoxSelector = $(this).data('hoverbox');
$(hoverBoxSelector).fadeIn(); // 使用淡入动画显示悬浮框
// 或使用其他动画效果,例如:
// $(hoverBoxSelector).slideDown(); // 使用滑动动画显示悬浮框
// $(hoverBoxSelector).show(); // 直接显示悬浮框,无动画效果
}
function hideHoverBox() {
var hoverBoxSelector = $(this).data('hoverbox');
$(hoverBoxSelector).fadeOut(); // 使用淡出动画隐藏悬浮框
// 或使用其他动画效果,例如:
// $(hoverBoxSelector).slideUp(); // 使用滑动动画隐藏悬浮框
// $(hoverBoxSelector).hide(); // 直接隐藏悬浮框,无动画效果
}
// 为所有目标元素绑定事件处理函数
$('.targetElement').mouseenter(showHoverBox).mouseleave(hideHoverBox);
});
问题分析:
当有多个目标框和悬浮框时,就需要将目标框和悬浮框对应起来,可以使用自定义属性之后,通过jquery的data()方法来实现该功能。
常见问题:
// 目标框鼠标移入事件
$('.targetEl').mouseenter(function() {
var hoverBoxSelector = $(this).data('hoverbox');
$(hoverBoxSelector).css({
'position': 'absolute',
'top': $(this).position().top,
'left': $(this).position().left,
'width': $(this).outerWidth(),
'height': $(this).outerHeight(),
'display': 'block'
});
});
// 目标框鼠标移出事件
$('.targetEl').mouseleave(function() {
var hoverBoxSelector = $(this).data('hoverbox');
//解决悬浮框闪动问题
hoverTimeout = setTimeout(function(){
$(hoverBoxSelector).css('display', 'none');
},200);
});
原文地址:https://blog.csdn.net/weixin_59742742/article/details/130746790
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_31314.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。