0

如果位置已经是30% ,我正在尝试在指向 3px 的链接上设置动画,如果div3px则上升。clickbottom

$(document).ready(function () {

    $('#picsClick').click(function () {

        if ($('#mainLogo').position().bottom === '30%') {
            $("#mainMenu").animate({ bottom: "3px" }, 1100);
        }
        else if (($('#mainLogo').position().bottom === '3px')) {
            $("#mainMenu").animate({ bottom: "30%" }, 1100);

        }

    });
});

不知何故,它没有运行,因为我将 mainMenudiv位置设置为bottom 30%并且它的位置是absolute.
谢谢。

4

2 回答 2

1

position() 返回的对象只包含 left 和 top 属性。所以底部是不存在的属性,因此你的代码失败了。

有关更多信息,请查看jQuery 文档

于 2013-08-23T11:09:48.207 回答
0

jquery position API 确实给出了元素的坐标。X 和 Y - 对您来说意味着顶部和左侧。您需要围绕这些重构您的逻辑。即使您这样做了,您也应该注意返回的值是数字 - 基于元素位置 wrt 页面尺寸的绝对值。你不能指望百分比。因此,您的比较逻辑也会改变。

例如,如果这是您的元素:

<input type="text" id="inpId" name="address" value="* Property Address :" style="top: 30%; position: absolute; ">
console.log(typeof $('#inpId').position()['top'])  // "number"
console.log(typeof $('#inpId').position()['bottom'])  // "undefined"

查看jquery 位置

编辑:要将您的逻辑集中在底部,您需要根据顶部计算相同的值。看到这个问题:

获取元素的底部和右侧位置

希望能帮助到你 :)

于 2013-08-23T11:11:17.083 回答