当我将鼠标悬停在相应的图像div上时,我希望信息div出现。信息div不是孩子或父母,并且未连接到图像div。 另外,如果我将鼠标从第一个div上移开并悬停在第二个div上,我希望加载第二个div的信息。
这是我的HTML代码
<div class="row">
<div class="col-xs-6">
<img class="meetTheTeamImg leaders firstImg" alt="" src="https://www.holmescustom.com/media/wysiwyg/Bryan.jpg"/>
</div>
<div class="col-xs-6">
<img class="meetTheTeamImg leaders secondImg" alt="" src="https://www.holmescustom.com/media/wysiwyg/Fern.jpg"/>
</div>
<div class="col-xs-6" id="bryanInfo">
<p>Bryan received a Marketing degree from the University of North Florida and joined the family Company in 1998 starting in</p>
</div>
<div class="col-xs-6" id="fernInfo">
<p>Steve received his Bachelor of Science in Computer Engineering from the University of Florida and Masters of Business Administration.</p>
</div>
</div>
这是我的jQuery代码
jQuery(document).ready(function () {
jQuery(".leaders.firstImg").mouseover(
function () {
jQuery('#bryanInfo').css("display", "block");
});
jQuery(".leaders.secondImg").mouseover(
function () {
jQuery('#fernInfo').css("display", "block");
});
});
并链接到我的小提琴 http://jsfiddle.net/yash009/Lg2eh7vu/13/
答案 0 :(得分:2)
有一个类可以使元素保持隐藏,并在进入和离开时切换类,而不是应用__Swizzle_InitWithFrame
样式。
inline
jQuery(".leaders.firstImg").mouseenter(
function() {
jQuery('#bryanInfo').removeClass('hide');
}).mouseleave(function() {
jQuery('#bryanInfo').addClass('hide');
});
jQuery(".leaders.secondImage").mouseenter(
function() {
jQuery('#fernInfo').removeClass('hide');
}).mouseleave(function() {
jQuery('#fernInfo').addClass('hide');
});
.hide {
display: none;
}
答案 1 :(得分:2)
您不需要jquery来执行此操作,但是如果必须这样做,则是一个示例:
由于您只希望将信息显示在悬停上,因此默认情况下,我将设置信息display: none
。这样,当您连接mouseover/mouseout
方法时,可以只使用.hide
和.show
而不是尝试更新类。我使您的图片高度为50px,但是可以将其删除。仅添加它进行测试。
您也不必像下面那样使用id映射,我建议通过使用data-attribute
来保存从ID中获取的某种标识符,使其更具可伸缩性。悬停元素。一旦有了该标识符,就可以使用它来查找正确的信息div。或者更好的是,以不同的方式构造HTML,以在其中包含图像和信息元素的容器div。然后,您可以使用$.closest
来获取最接近图像的信息div(这将是正确的图像),然后隐藏/显示该图像。
这是一种简化的结构方式(不使用jQuery):
https://jsfiddle.net/mswilson4040/gnh2wpvu/10/
jQuery(document).ready(function () {
$('#bryan').mouseover( (e) => $('#bryanInfo').show())
$('#bryan').mouseout( (e) => $('#bryanInfo').hide())
$('#fern').mouseover( (e) => $('#fernInfo').show())
$('#fern').mouseout( (e) => $('#fernInfo').hide())
});
img {
height: 50px;
}
#fernInfo, #bryanInfo {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="col-xs-6" id="bryan">
<img class="meetTheTeamImg leaders firstImg" alt="" src="https://www.holmescustom.com/media/wysiwyg/Bryan.jpg"/>
</div>
<div class="col-xs-6" id="fern">
<img class="meetTheTeamImg leaders secondImage" alt="" src="https://www.holmescustom.com/media/wysiwyg/Fern.jpg"/>
</div>
<div class="col-xs-6" id="bryanInfo">
<p>Bryan received a Marketing degree from the University of North Florida and joined the family Company in 1998 starting in</p>
</div>
<div class="col-xs-6" id="fernInfo">
<p>Steve received his Bachelor of Science in Computer Engineering from the University of Florida and Masters of Business Administration.</p>
</div>
</div>
答案 2 :(得分:1)
首先,请注意名称不匹配!在HTML脚本中,您正在使用secondImage
类名,而在JQuery中将其称为secondImg
。
此外,当页面首次加载时,即在您的jQuery(document).ready
处理程序中,请不要忘记最初隐藏描述:
jQuery('#bryanInfo').css("display", "none");
jQuery('#fernInfo').css("display", "none");