gpt4 book ai didi

jquery 将跨度集中在图像悬停上(因为它可能是内联的?)

转载 作者:行者123 更新时间:2023-12-01 01:36:45 25 4
gpt4 key购买 nike

当用户悬停图像时显示内容时,我试图制作精美的悬停效果。我希望悬停气泡位于图像顶部的中心。

在此 fiddle 中说明:http://jsfiddle.net/sandrodz/TnEMU/

这在 Chrome 中尤其糟糕,其中 span 会在悬停时自动转换为 display:inline ,其行为与 Firefox 不同。将两者都作为 block 元素放置会有所帮助,但隐藏元素是平移的,它会自动显示:内联。关于如何解决此问题并使悬停直接出现在正确图像之上有什么想法吗?

谢谢!

最佳答案

There you go (with your code)

CSS变化:

#features_icons li span {
top:0; /* ///added to fix in chrome ///*/
left:0;/* ///added to fix in chrome///*/
white-space:nowrap;/* ///added this line/// */
}
#features_icons li {
position:relative; /* ///added this line/// */
}

在 jquery 中我刚刚添加:outerWidth(true)获得正确的尺寸:

spanW = ($(this).next("span").outerWidth(true) / 2) - ($(this).outerWidth(true) / 2);
<小时/>

您还可以尝试:删除所有 <SPAN>元素
不同的方法:

jsFiddle demo

无论如何,您的图标都需要 alt 属性...所以为什么不为每个图像提供 SPAN 文本:(任何 CMS 编辑器都允许您向图像添加 alt.description 文本。)

<img alt="Air Conditioning" src="http:conditioning.png" />


因此,您可以删除所有跨度,在<body>之后附加标记此:

<div id="tooltip"></div>

并使用我的脚本:

$("ul#features_icons li img").hover(function() {
var altText = $(this).attr('alt');
var thisW2 = $(this).outerWidth(true) / 2;
var thisPosL = $(this).offset().left + thisW2;
var thisPosT = $(this).offset().top;

$('#tooltip').text(altText);
var toolW2 = $('#tooltip').outerWidth(true) / 2; // after it's filled with text
$('#tooltip').stop(1).fadeTo(200,1).css({left: (thisPosL-toolW2) , top:thisPosT});
}, function() {
$('#tooltip').fadeTo(100,0,function(){
$(this).hide();
});
});
  • 它将计算图标位置
  • 捕获alt文字
  • 填写#tooltip与文本
  • 获取工具提示宽度
  • 定位#tooltip
  • 并展示出来!

P.S:我刚刚在你的CSS中重命名:#features_icons li span {#tooltip{

关于jquery 将跨度集中在图像悬停上(因为它可能是内联的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com