Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Фича для нуба (https://javascript.ru/forum/jquery/59170-ficha-dlya-nuba.html)

newbie guy 30.10.2015 18:41

Фича для нуба
 
Всем привет!
Недавно начал изучать javascript и jquery, и вот столкнулся с такой бедой.

$('#btn').hover(function(){
        $(this).animate({width: '100%'}, 1000);
    },function(){
        $(this).animate({width: '200px'}, 1000);
});


Если навести курсор на элемент с id="btn", он увеличится в размерах, если убрать курсор, он уменьшиться. Так как интервал выполнения данной функции 1000, увеличение/уменьшение размера идет очень плавно.
Так вот. Если раз 5 или больше навести на этот элемент, скрипт будет выполняться 5 или больше раз, и не остановится пока не выполнит все разы. Это выглядит ужасно. С таким интервалом выглядит как лаг.

Как же это пофиксить?

Decode 30.10.2015 19:05

На CSS же можно, зачем jQuery?
<style>
button {
    width: 100px;
    -webkit-transition: width 0.5s linear;
    -moz-transition: width 0.5s linear;
    -o-transition: width 0.5s linear;
    transition: width 0.5s linear;
}

button:hover {
    width: 100%;
}
</style>
<button>Button</button>

ruslan_mart 30.10.2015 19:15

http://jquery-docs.ru/Effects/stop/

newbie guy 05.11.2015 13:33

можно и на css, но у меня конкретная задача сделать с помощью JQuery...

функция stop() помогла, спасибо

krasovsky 06.11.2015 08:01

Я обычно делал stop, ибо не приоритетно было, но вообще для того чтоб сделать все по человечьи используют работать надо с очередью https://api.jquery.com/queue/


Часовой пояс GMT +3, время: 14:41.