Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2012, 19:26
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Бесконечная равномерная анимация
Сомневаюсь, но на всякий случай спрошу:
как реализовать без таймеров (а может эмулировать с помощью таймеров?) равномерное движение?
То есть по ховеру изменяем css.left, курсор ушёл - движение прекратилось.
и так, и сяк пробовал - всё рывками.
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2012, 19:41
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Nanto Посмотреть сообщение
Сомневаюсь, но на всякий случай спрошу:
как реализовать без таймеров (а может эмулировать с помощью таймеров?) равномерное движение?
То есть по ховеру изменяем css.left, курсор ушёл - движение прекратилось.
и так, и сяк пробовал - всё рывками.
CSS анимации Вам в помощь :

<style>
div {
    background-color: #BADA55;
    width: 50px;
    height: 50px;
    position: absolute;
    
    -webkit-animation: loop 2s ease 0s infinite normal;
    -moz-animation: loop 2s ease 0s infinite normal;
    animation: loop 2s ease 0s infinite normal;

    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    animation-play-state: paused;
}
div:hover {
    -webkit-animation-play-state: running;
    -moz-animation-play-state: running;
    animation-play-state: running;
}

@-webkit-keyframes loop{
    0% {
        -webkit-transform: translateX(0px);
    }

    50% {
        -webkit-transform: translateX(100px);
    }

    100% {
        -webkit-transform: translateX(0);   
    }
}

@-moz-keyframes loop{
    0% {
        -moz-transform: translateX(0px);
    }

    50% {
        -moz-transform: translateX(100px);
    }

    100% {
        -moz-transform: translateX(0);   
    }
}

@keyframes loop{
    0% {
         transform: translateX(0px);
    }

    50% {
        transform: translateX(100px);
    }

    100% {
        transform: translateX(0);   
    }
}
</style>
<div></div>
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2012, 13:08
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Опера и IE идут лесом.
Но я сам ступил... Надо просто корректно указывать конечное значение css.left, а не использовать приращение.
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2012, 21:06
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

А почему вы не используете jquery .animation()?
Цитата:
Опера и IE идут лесом.
И таких проблем не будет.
Либо как предложил melky, все очень плавно и работать будет во всех сравнительно новых браузерах)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация движения Armen Общие вопросы Javascript 8 02.08.2011 18:32
Бесконечная анимация размера DIV Deliaz jQuery 3 10.07.2011 03:01
Анимация и управление строчкой текста INI jQuery 2 31.08.2010 08:22
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Цикличность анимация? SashaBorandi jQuery 1 25.12.2008 09:20