【问题标题】:Animate moving an element using append使用追加动画移动元素
【发布时间】:2019-06-01 01:24:25
【问题描述】:

我希望页面上的一个元素在您滚动到某个高度时通过“移动”动画从 Jumbotron 移动到导航栏。

我已经设法通过在导航栏中设置 div class="logo-top" 和在 jumbotron 中设置 div class="logo-hero" 来实现这一点,并且我正在使用 append 更改父类图片 (#logo) 将其从 jumbotron 移动到导航栏,并相应地更改其大小

我试图 append.animate 没有成功。

var moved = false;
var logo = $("#logo");
var logo1 = logo.clone();


$(window).scroll(function () {
    var vertical_position = 0;
    if (pageYOffset)//usual
        vertical_position = pageYOffset;
    else if (document.documentElement.clientHeight)//ie
        vertical_position = document.documentElement.scrollTop;
    else if (document.body)//ie quirks
        vertical_position = document.body.scrollTop;


    if (vertical_position > 120) {
        moveLogoUp(moved);
        moved = true;
    }
    else if (vertical_position < 120 && moved === true) {
        moveLogoDown(moved);
        moved = false;
    }
});


function moveLogoUp(moved) {
    if (!moved) {
        logo.animate({
            "width": 125
        }, "slow");
        logo1.css("visibility", "hidden");
        $(".logo-top").append(logo);
        $(".logo-hero").append(logo1);
    }
}

function moveLogoDown(moved) {
    if (moved) {
        $(".logo-hero").append(logo);
        logo.animate({
            "width": "20rem"
        }, "slow");
        logo1.remove();
        $(".logo-hero").append(logo);
        console.log("moveLogoDown done");
    }
}

问题是动画不是“移动”而是调整大小。如何实现“移动”动画效果?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    移动?你的意思是从左到右?这你可以用“左” 例如

    logo.animate({
        top: 400,
        width: 125,
        left: 100,
    }, "slow");
    

    // 更新: 我为所有需要这种东西的人做了一个小例子,只要满足你的需要......

    https://jsfiddle.net/o5hjrbcd/6/

    【讨论】:

    • 问题是我希望它移动到 .logo-top 类位置。因为一旦它移动到那里,它就变成了一个固定的顶部。
    • 标志上还有其他款式吗?你能展示一下css吗?
    • 不,#logo 只是徽标图像,没有额外的样式。
    • 我认为你不需要克隆你的标志,让它移动和缩小,看看这个stackoverflow.com/questions/51516784/add-animation-to-offset
    • 没问题,有一点解决方法 :) 不客气! “-=”可以代表您的动画将一次又一次地触发,如果您不使用它,动画将只工作一次......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多