gpt4 book ai didi

jquery - 防止 jQuery 在元素鼠标悬停时将文档顶部推到顶部?

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

我正在尝试使用tipsy

...向页面添加工具提示。因此,我准备了下面发布的简单 HTML 示例 - tipsy 似乎可以运行,但不幸的是,当我将鼠标悬停在该元素上时,整个文档正文被推下,这是视觉上的非常烦人(此外,可能导致焦点下的元素移动并失去鼠标悬停);这可以在下面的 gif 中看到,在 Ubuntu 14.04、Firefox 43 上捕获:

tipsy-ffox.gif

当鼠标悬停在 tipsy 元素上时,如何防止整个文档被“推下”?

测试代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<script type="text/javascript" src="../jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="../jquery.tipsy.js"></script>
<link rel="stylesheet" type="text/css" href="../tipsy.css"/>
<style type="text/css">
#_help_refresh {
display:none;
}
</style>
<script type="text/javascript">
ondocready = function() {
// placeholder - nothing for now...
$("#_refresh").tipsy({fade: true, gravity: 's', html: true, title: function() {
return $("#_help_refresh").html();
}
});
}
$(document).ready(ondocready);
</script>
</head>

<body>
<h1>Testing tipsy ...</h1>

<div id="testholder">
<div>Some text here:</div>
<div>Some more text here:</div>
</div>

<span><img id="_refresh" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAAQxJREFUOI2l1DtOA0EMBuBPiGMgUBo4AQWioEAkCCpuACUSuQLcgYI+4QJ0NAREkWOkiBBCPBraFLsU6w3L7uZFfsmSx2P/Y8/YQz1a6GKAUcggbAc1/pdlwxb6SGfIEzYi5gpJkWQP3+GYoIc2miFtPMdeinfcFNbjTHKSYZBOwhE+arKkUM4Qa1NIclzXEbUK5UzLJEd+JxWibii9JUjSVeyG090MkjOcysqvxShYm3NkNBErywSXiV5C31yWqB/6yT/iO7IuP2fx589xHDEJdnLjog3ZwFvE3Bc3FhmRfbyG7yfWyw7loX3Ahb9D++i3Ib+wPem0eb6RRHbBjSlZj3GIW9WPrROlVfADiJ5vX7sneXIAAAAASUVORK5CYII="/></span>

<span id="_help_refresh">Here is the help test that goes in the tooltip</span>
</body>

最佳答案

感谢 Firebug 和 Firebug: How to inspect elements changing with mouse movements? 找出问题所在.

基本上,当页面加载时,<h1><body> 中的第一个元素。 Firebug 显示系统 CSS 为 <h1>在这种情况下是:

margin-block-end: 0.67em;<br/><s>margin-block-start: 0.67em;</s>

请注意,在本例中 - 当 <h1> 时首先是 margin-block-start被 Firefox 自动禁用;但是当其他元素在 <h1> 之前时,然后 margin-block-start Firefox 自动启用。

所以,发生的事情是:一开始我们有 <body><h1>... ,然后发生鼠标悬停,并且 tipsy实际上插入了一个<div>作为 <body> 的第一个 child ,因此我们有 <body><div ... /><h1>... ;因此<h1>不再是第一个 child 了,所以它是 margin-block-start启用后,内容的“下推”变得可见。

最简单的修复方法 - 无需 CSS 或 JS 或任何东西 - 就是简单地插入一个空 <div> (或其他元素)作为 <body> 的第一个子元素,即在<h1>前面:

...
<body>
<div></div>
<h1>Testing tipsy ...</h1>
...

然后,如<h1>不再是第一个 child 了,它将有 margin-block-start从一开始就启用,因此 tipsy一旦它们各自的 div 鼠标悬停将不会改变这一点已插入。

关于jquery - 防止 jQuery 在元素鼠标悬停时将文档顶部推到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028775/

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