#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. Круто .. Но это не выглядит аккуратно. Это зависит от вас