javascript - 如何使用 jQuery 对固定元素的位置进行动画处理

标签 javascript jquery html css animation

我有一个 div,其位置属性是:

.some
{
    position: fixed;
    top: 0px;
}

然后我想为其bottom设置动画(不是使用top,而是使用bottom属性)

$(document).ready(function(){

                  $("a").on("click", function(e){
    e.preventDefault();
                      $("div").animate({ top: "none", bottom : 25});    
        });
});

但是它不起作用。问题在于 top 属性具有优先级。如果我将顶部设置为 0 那么它会粘在顶部,它不关心任何底部值。然而,我删除了顶部属性并为底部设置了动画,它从最底部开始动画。我希望动画从顶部值指定的位置开始,到底部值指定的位置结束。我该怎么办?

这是 JSFiddle:

http://jsfiddle.net/mostafatalebi2/ex1b69g9/

最佳答案

您应该使用负的 margin-top 值从 top: 0top: 100% 进行动画处理,以维持 div 距页面底部一定距离。这样做,您的 div 将从页面的顶部移动到底部,如您所愿。

要将 div 精确移动到距底部 25 像素 的位置,您可以margin-top 设置为 div 高度减去 25px 的负值

这是一个例子:

$(document).ready(function() {
    $("a").on("click", function(e) {
        e.preventDefault();
        var $div = $('div.some');
        $div.animate({
            top: '100%',
            marginTop: - $div.height() - 25
        });
    });
});
.some {
  position: fixed;
  top: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div class='some'>I am a DIV!</div>
<br/>
<br/>
<a href='#'>Click Here!</a>

关于javascript - 如何使用 jQuery 对固定元素的位置进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034187/

相关文章:

javascript - 光滑 slider 中心模式不起作用

jquery - 重新加载 CSS 仅适用于鼠标悬停在窗口上

html - '位置: fixed' is not applying in Samsung S3

jquery - 是否可以使用 jQuery 来扭曲元素?

javascript - 当从 5 个图像中选择 2 个图像时,如何禁用其他图像?

javascript - 获取 div 在层次结构中的位置

html - 使用css将div中的多个元素居中

javascript - jqGrid 鼠标拖动调整大小

javascript - JQuery on ('click' )直接调用函数,而不是在事件监听器中定义它

javascript - 如何使用带 SSL 的托管 YUI?