我在使用jQuery和CSS时出现了Tooltip效果问题。
我想概述一个房间和座位安排。在每个座位上都有一个人可以获得图片和一些信息。房间本身有大约60个座位。
我有一张放在背景中的照片
#sitzplatzverteilung {
width: 516px;
height: 360px;
position: relative;
margin: 20px 0px;
background: url("6x12x8_sitzplan.jpg") no-repeat;
border: 1px solid;}
接下来我坐了一个座位
.platz {
width: 39px;
height: 50px;
position: absolute;
cursor: pointer;
font-size: 11px;
font-family: arial;
border: 1px solid;
}
我收到了要在mouseover
.platz_info {
display: none;
background-color: #ffffff;
border: solid 1px #abaaac;
width: 250px;
padding: 3px 5px;
border: 1px solid;
}
每个座位都在图片上有自己的位置。我用
将.platz
放在每个座位上
#platz1 {
top: 73px; //next one got different top and left
left: 2px;}
我的html为座位(正文)
<div id="sitzplatzverteilung">
<div id="platz1" class="platz">
<div class="platz_info">
<img src="person1.jpg" /><br>
Test Text1
</div>
</div>
<div id="platz2" class="platz">
<div class="platz_info">
<img src="person1.jpg" /><br>
Test Text2
</div>
</div>
</div>
我的脚本显示工具提示
$(document).ready(function(){
$(".platz").mouseenter(function(){
$(".platz_info").hide();
$(".platz_info", this).show(0);
});
$(".platz_info").click(function () {
$(".platz_info").hide();
})
});
现在我的问题是,如果我将鼠标悬停在其中一个座位(platz1 platz2)上,我的工具提示会显示出来。 但它所显示的位置是相对于座位的。因此,每个工具提示都会直接打开座位上/旁边的鼠标悬停。
我已经尝试过给它一个顶部和左边,只是把它放在距离每个座位一点点的位置。但我希望工具提示在固定位置打开。使用float:right
/ left
时,它只会将工具提示放在座位的左边缘或右边缘。
有没有可能给工具提示(platz_info)一个固定的地方打开?
答案 0 :(得分:1)
如果您希望工具提示始终显示在特定位置,则每个工具提示根本不需要多个元素。您可以将一个元素放置在所需位置,并根据悬停的座位更改其内容,如下所示:
$(document).ready(function () {
$(".platz").mouseenter(function () {
$(".platz_info").text($(this).text()).show(0);
});
$(".platz").mouseleave(function () {
$(".platz_info").hide();
});
$(".platz_info").click(function () {
$(".platz_info").hide();
})
});
答案 1 :(得分:1)
就像一些额外的东西,你可以在没有任何Javascript / JQuery的情况下实现这一点,所以无论如何都可以。虽然在HTML和HTML中需要更多代码。 CSS。只需格式化您的HTML:
<div id="container">
<div id="pic1">pic1</div>
<div id="tip1">This is your info</div>
</div>
使用这个CSS:
#container {
position: relative;
width: 80%;
height: 300px;
margin: 20px auto;
background-color: burlywood;
}
#pic1 {
position: absolute;
top: 40px;
left: 40px;
width: 50px;
height: 50px;
border: 1px solid black;
}
#tip1 {
position: absolute;
z-index: 99999;
top: 20px;
left: 65px;
height: 25px;
padding: 6px;
border-radius: 20px;
border: 1px solid black;
background-color: slateGrey;
opacity: 0;
}
#pic1:hover + #tip1 {
opacity: 1;
}
这是DEMO
注意:我的CSS有一些明显的额外样式规则,你必须为每个实例重复它,所以JQuery可能会更好,但这适用于任何浏览器,无论如何。
答案 2 :(得分:0)
是的,可以做到。它是.platz_info
,需要position: absolute;
看看这个小提琴: http://jsfiddle.net/shodaburp/Rzmv6/