Анимация перемещения элемента с помощью добавления

Я хочу, чтобы элемент на странице перемещался из Jumbotron в панель навигации с «движущейся» анимацией при прокрутке до определенной высоты.

мне удалось добиться этого, настроив div class="logo-top" на панели навигации и div class="logo-hero" внутри jumbotron, и я использую append для изменения родительского класса изображения (#logo), чтобы переместить его из джамботрона в панель навигации и соответственно изменить его размер.

Я безуспешно пытался добавить .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.info("moveLogoDown done");
    }
}

Проблема в том, что анимация не «движется», а просто изменяет размер. как я могу выполнить эффект анимации «перемещение»?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Переехать? Вы имели в виду слева направо? Это ты можешь с "слева" например

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

// Обновить: Я сделал небольшой пример для всех, кому может понадобиться что-то подобное, просто справьтесь с вашими потребностями...

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

Дело в том, что я хочу, чтобы он переместился в позицию класса .logo-top. потому что, как только он переместится туда, он станет фиксированной вершиной.

Dimon 30.05.2019 17:08

у вас были другие стили на логотипе? можешь показать css?

Toxi 30.05.2019 17:12

нет, #logo — это просто изображение логотипа, никаких дополнительных стилей.

Dimon 30.05.2019 17:15

я думаю, вам не нужно клонировать свой логотип, пусть он только двигается и сжимается, взгляните на этот stackoverflow.com/questions/51516784/добавить анимацию к смещению

Toxi 30.05.2019 17:46

Да! Спасибо!

Dimon 31.05.2019 14:16

Нет проблем, было небольшое обходное решение :) добро пожаловать! "- = " делает трюк, чтобы делегировать, что ваша анимация будет запускаться снова и снова, если вы этого не используете, анимация будет работать только один раз...

Toxi 31.05.2019 19:15

Другие вопросы по теме