Попытка изменить положение и размер изображения одновременно

#jquery #animation

#jquery #Анимация

Вопрос:

Я работаю с эмодзи теннисного мяча для кнопки отправки, и я хотел бы анимировать его с экрана, когда пользователь нажимает на него.

эмодзи
(источник:emojipedia.org)

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

Вот что у меня пока есть jsfiddle:

 (function() {
    $(document).on('click','#save',clicked)
    function clicked(myEvent) {
        myEvent.preventDefault()

        var local = {}
        local.width = ["50px", "swing" ]
        local.height = [ "50px", "swing" ]
    local.top = "-64px"
        $(this).animate(local,"slow")
    }
})()
  

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

Комментарии:

1. Эффект отскока можно создать с помощью css3

2. Что-то вроде этого: jsfiddle.net/LaRWY/4

Ответ №1:

Вы должны полностью расположить шарик перед запуском JavaScript, используя CSS:

 #save {
    position: absolute;
    top: 100px;
}
  

Комментарии:

1. Это потрясающе. Может быть, я мог бы просто изменить его класс на что-то, что имеет отскок 1 и выходит за верхнюю часть экрана вместо бесконечного отскока?

2. Упс. Извините. Я смотрю на скрипку @ Ani.

3. Лол … да … вы должны сделать это абсолютным, хотя

Ответ №2:

Может быть что-то вроде этого:http://jsfiddle.net/LaRWY/7 /

 @-webkit-keyframes bounce {
  from, to  {
    top: 0;
    -webkit-animation-timing-function: ease-out;
  }
  50% {
    top: 220px;
    -webkit-animation-timing-function: ease-in;
  }
}
@keyframes bounce {
  from, to  {
    top: 0;
    animation-timing-function: ease-out;
  }
  50% {
    top: 220px;
    animation-timing-function: ease-in;
  }
}

#save{
  -webkit-animation-name: bounce;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-duration: 4.2s;

  animation-name: bounce;
  animation-iteration-count: infinite;
  animation-duration: 4.2s;
  position: absolute;
  top: 100px;
}
  

Комментарии:

1. Ну, размер не меняется.

2. Нет, но я смог добавить -webkit-transform: rotate (180deg); чтобы придать ему некоторое вращение. Выглядит довольно хорошо !

3. Круто .. Но это не выглядит аккуратно. Это зависит от вас