javascript - 动画 DIV 到页面底部,然后再次点击动画到顶部

标签 javascript jquery css

我正在制作这个 div 动画,其中 div 从顶部开始的原始位置为 70%,并且 div 是绝对的。 现在,当我点击按钮时,它会滑到页面底部,顶部为 95%。

现在我想检查这个位置是否在top:95%,如果是,那么我想把它滑回top:70%;

不知何故 Div 滑到 95% 但没有回来。我在这里做错了什么?? 代码

CSS:-

  #mainMenu {
        width: 100%;
        height: 30px;
        background-color: black;
        top: 70%;
        position: absolute;
    }

    body {
        margin: 0px;
    }

    #clickToCheck {
        font-size: 22px;
    }

JQuery

 <script>
    $(document).ready(function () {

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

            $("#mainMenu").animate({ top: "95%" }, 1100);

        });
    });


    $(document).ready(function () {
        $('#clickToCheck').click(function () {
            if ($('#mainMenu').position().top === '95%') {
                $("#mainMenu").delay(1000).animate({ top: "70%" }, 1200);
            } else {
                alert('its not at bottom');
            }
        });
    });

和HTML

<body>
<span id="clickToCheck">Click to CHeck</span>
<div id="mainMenu"></div>

最佳答案

问题是函数

$('#mainMenu').position().top

将返回以像素为单位的值而不是百分比。因此,如果您想检查顶部是否为 95%,则必须根据顶部和窗口高度(或 div 高度)进行计算。这是代码:

$('#mainMenu').position().top/$(window).height()*100

此处您将获得#mainMenu 相对于整个窗口的百分比。如果#mainMenu 在 div 内,只需根据 div 的高度进行操作。另请注意,您可能会得到一个像 94.2343123 这样的数字。所以在检查的时候,我不会做和“if = 95”。我会做类似“if >= 93”之类的事情。

关于javascript - 动画 DIV 到页面底部,然后再次点击动画到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18404981/

相关文章:

jquery - 为什么我无法在日期选择器文本框中输入内容?

jquery - 如何使弹出窗口停留在屏幕中央。

css - 在同一行显示 3 个 div(图片库+文本+Webform)

php - 当用户导航到另一个页面时自动开始下载

Javascript 正则表达式 : find the first 'use strict'

javascript - 模态中的推特 Bootstrap 3.x 表单

javascript - 如何在文本框中仅允许数字,但又允许使用法语键盘输入

javascript - Bootstrap 弹出窗口卡在全日历中

javascript - 元素离开视口(viewport)时的交点观察者

html - 如何使div高度增加以包含 float 图像