Poshy提示不随滚动元素一起移动

时间:2013-08-05 12:23:36

标签: javascript jquery scroll tooltip

在滚动div中创建Poshy Tip时,在滚动div时,提示不会移动。

请参阅this fiddle

我假设这是因为tip div是<body>的子节点,而不是滚动容器div的子节点。

有办法解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

<强> JSFIDDLE v2

说明

PoshyTip实际上是在文档的末尾创建并给出一个位置:绝对顶部:0px和z-index:1000这意味着它将始终覆盖正文并定位到它。为了使其工作,您将不得不改变DOM以将PoshyTip移动到Click me中,这样它将如下所示:

<span id="tip">Click me
    <div class="tip-yellow" style="visibility: inherit; left: 62px; top: 0px; border: 0px; padding: 0px; background-image: none; background-color: transparent; opacity: 1;"><table class="tip-table" border="0" cellpadding="0" cellspacing="0" style="width: 169px;"><tbody><tr><td class="tip-top tip-bg-image" colspan="2" style="background-image: url(http://vadikom.com/demos/poshytip/src/tip-yellow/tip-yellow.png);"><span></span></td><td class="tip-right tip-bg-image" rowspan="2" style="background-image: url(http://vadikom.com/demos/poshytip/src/tip-yellow/tip-yellow.png);"><span></span></td></tr><tr><td class="tip-left tip-bg-image" rowspan="2" style="background-image: url(http://vadikom.com/demos/poshytip/src/tip-yellow/tip-yellow.png);"><span></span></td><td style="width: 100%;"><div class="tip-inner tip-bg-image" style="background-image: url(http://vadikom.com/demos/poshytip/src/tip-yellow/tip-yellow.png);">Scroll and I won't move</div></td></tr><tr><td class="tip-bottom tip-bg-image" colspan="2" style="background-image: url(http://vadikom.com/demos/poshytip/src/tip-yellow/tip-yellow.png);"><span></span></td></tr></tbody></table><div class="tip-arrow tip-arrow-left" style="visibility: inherit;"></div></div>
</span>

接下来,您将需要设置SPAN位置:relative,因此它将如下所示:

<span id="tip" style="position:relative;">Click me

最后你需要设置顶部:-8px为tip-yellow类

<div class="tip-yellow" style="top:-8px; visibility: inherit; left: 62px; top: 0px; border: 0px; padding: 0px; background-image: none; background-color: transparent; opacity: 1;">

答案 1 :(得分:0)

我不喜欢这个插件,但在网上浏览后我会回答你的问题

您可以查看工具提示扭曲的样式属性,并看到它包含“左”和“右”属性。没有位置css属性,因为它获取默认值“static”。

您可以阅读有关“位置”属性的更多信息以及“静态”值,尤其是w3c。在一般情况下,我可以告诉你,只要“位置”属性不“固定”,元素就不会被固定到第一个“位置:相对”div

答案 2 :(得分:0)

由于poshytip覆盖了body并定位到它,为什么无法更改源文件jquery.poshytip.js,将“.appendTo(document.body)”替换为“.insertAfter(this。$ elm) ”。然后,提示可以与滚动元素一起滚动。