Я хочу, чтобы элемент на странице перемещался из 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");
}
}
Проблема в том, что анимация не «движется», а просто изменяет размер. как я могу выполнить эффект анимации «перемещение»?
Переехать? Вы имели в виду слева направо? Это ты можешь с "слева" например
logo.animate({
top: 400,
width: 125,
left: 100,
}, "slow");
// Обновить: Я сделал небольшой пример для всех, кому может понадобиться что-то подобное, просто справьтесь с вашими потребностями...
https://jsfiddle.net/o5hjrbcd/6/
у вас были другие стили на логотипе? можешь показать css?
нет, #logo — это просто изображение логотипа, никаких дополнительных стилей.
я думаю, вам не нужно клонировать свой логотип, пусть он только двигается и сжимается, взгляните на этот stackoverflow.com/questions/51516784/добавить анимацию к смещению
Да! Спасибо!
Нет проблем, было небольшое обходное решение :) добро пожаловать! "- = " делает трюк, чтобы делегировать, что ваша анимация будет запускаться снова и снова, если вы этого не используете, анимация будет работать только один раз...
Дело в том, что я хочу, чтобы он переместился в позицию класса .logo-top. потому что, как только он переместится туда, он станет фиксированной вершиной.