2015-05-29 5 views
0

Я играю с this сайтом в течение дня, и я действительно борюсь в одном. Я могу легко изменить анимацию, когда я изменяю function move, так что если стоп отрицательный -stop-(-stop*delta)+"px" и он работает. несколько .. для easeOut(bounce) он работает хорошо. Но когда я использую линейные элементы, они возвращаются в позицию, которую я определяю как остановку, а затем с линейным эффектом возвращается к предыдущей позиции. Может ли кто-нибудь помочь мне, как легко отменить анимацию, которую она РАБОТАЕТ?Javascript анимация без jquery

Спасибо!

+4

могли бы вы предоставить jsfiddle с кодом? –

+0

Держитесь. Я подготовлю его прямо сейчас. – jPO

+0

вот скрипка [https://jsfiddle.net/bd59y61h/](https://jsfiddle.net/bd59y61h/) – jPO

ответ

1

Я хотел бы сделать несколько замечаний на вас код:

  • вам следует добавить везде ; после конца строки. Это хорошая практика.
  • в вашем случае для исправления вы должны установить start: 0 вместо start: 200. Это необходимо потому, что вы установили item элемент как style="left:200px"

Так оно и должно быть

document.getElementById('item').onclick = function (e) { 
    e.target.move({ 
     direction: "left", 
     delta: linear, 
     stop: -200, 
     duration: 600, 
     start: 0 // instead of 200 
    }); 
}; 

Вот мой jsfiddle

+0

спасибо: D, это единственное, что я не пробовал lol – jPO

+0

Я очень рад, что я помог вам –

1

Я сделал это JSFIDDLE.

Javascript

var max = false; 

function move(elem) { 


    var left = 0 

    if(max) 
     left = 100; 
    function frame() { 

     if(!max) 
     { 
    left++ // update parameters 
     } 
     else 
     { 
     left-- 
     } 

    elem.style.left = left + 'px' // show frame 

    if (left == 100) // check finish condition 
    { 
     clearInterval(id) 
     max = true; 
    } 
     if(max == true && left == 0) 
     { 
        clearInterval(id) 
     max = false; 
     } 
    } 

    var id = setInterval(frame, 10) // draw every 10ms 

    }; 
+0

Большое спасибо. Я знаю, что вы сначала ответили на мой вопрос, но после того, как вы его разместили, я опубликовал скрипку своей «библиотеки». Я забыл упомянуть, что я использую всю коллекцию функций в прототипе функции. Тем не менее, спасибо вам большое за ваши усилия! – jPO

Смежные вопросы