4

我正在使用 jQuery 位置 UI 插件在网页上定位助手图标。这是我负责该职位的代码:

    if ( $(element_selector).length !== 0 && $(title_class_selector).length !== 0  ) {

    $(title_class_selector).position({
    my: "center",
    at: cornerPosition,
    offset:"<?php echo $x_coordinates_foradjustment;?> <?php echo $y_coordinates_foradjustment;?>",
    of: $(element_selector)

    });

    }

其中cornerPosition 有以下可能的值:

left top
right top
left bottom
right bottom

它工作得很好,直到我遇到我想附加图标的特定 div 的问题。在第一次加载时,位置是错误的(不是左下而是左上),另一个不是右上,而是右下。

这些是受影响的 element_selector 及其正确和错误的位置:

#wpv-featured-news-slider .span4:first-child .thumbnail
Correct position: Left bottom
Actual position on first loading of webpage: Left top

#wpv-featured-news-slider
Correct position: Right top
Actual position on first loading of webpage: Right bottom

奇怪的是,当我刷新页面(重新加载页面)时,它现在回到了正确的位置!这是缓存或选择器有问题吗?有没有办法对此添加一些检查?我不喜欢更改 element_selectors 来纠正这个问题。

该定位系统已在我们的不同网站中广泛实施,这是我看到此问题的唯一场合(其余都可以正常工作)。这可能是一个高度孤立的案例。我搜索任何相关问题,但找不到。任何提示和建议都会非常有帮助。谢谢。

4

2 回答 2

0

您是否考虑过图像的任何问题?有时没有指定高度/宽度的非缓存图像可能会导致位置问题。试试https://github.com/desandro/imagesloaded看看这是否有帮助。

于 2013-04-23T03:49:41.357 回答
0

jQuery UI 使用碰撞检测,在发现碰撞的地方,它会将定位的项目放置在不同的位置。未指定的默认值(如您的情况)是翻转,因此它将元素翻转到目标的另一侧(如您所述)。

尝试将碰撞更改为“无”。

我遇到了同样的问题,奇怪的是只在初始加载时影响页面,但在后续加载时正常。

于 2015-07-14T15:55:31.067 回答