Авторский знак. Seosait21.ru Есть у человека надежда. Пока не поздно. Вгрызайся и изучай.
Нажимай и поддержи.

Пн Вт Ср Чт Пт Сб Вс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31


Чувашия-это моя Россия

Функция stop() в jQuery.

При создании анимационных эффектов возникает так называемый кадры мерцания, когда быстром ведении курсора мыши во время выполнения сценария программы туда-сюда, потом резкого остановки курсора все равно продолжается выполняться анимационная программа. Сколько раз раз Вы проводили курсором мышки по выбранному элементу набора, столько раз будет мерцать( то есть мгновено начинается мгновенно заканчивается) сколько раз Вы проводили по выбранному элементу ( или в частности по изображению).

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

Общий вид функции stop() начиная с версии jQuery 1.7 представляется так: stop('имя очереди', булевое_значение, булевое_значение,); здесь первый параметр есть строка - имя очереди, чтобы остановить анимацию, второй и третий аргументы по умолчанию false. Тут сильно этими параметрами грузиться не стоит, лучше писать stop().

Вы желаете, чтобы элемент появился, исчез и опять появился, при этом библиотека jQuery по рекомендациям запускает каждый эффект по порядку, один за другим( в данном случае, например, $('').fadeIn.fadeOut.fadeIn;

Как же Вам прервать эту очередь пока будет выполняться одна функция? То есть как Вам остановить выполнение всех анимационных эффектов перед запускам новой анимации.

В библиотеке jQuery имеется функция stop(). Именно, стоп. Простой и легкий метод stop(). Данная функция stop() решает Вашу проблему мерцания, то есть функция stop() завершает любой анимационный эффект, прежде чем запустит новый. естественно, при этом предотвращает создание очереди эффектов, хотя тут тоже не совсем так как хотелось бы. Во время выполнения анимацинного эффекта как бы остается "глухим и слепым", не считывает значения на курсоре в данном случае, если проставлена перед этим функция stop().

Однако, тут много подводных камней, потому что с версии jQuery 1.7, преждевременная остановка анимации с помощью функции stop() вызовает внутренний эффект слежения jQuery. До этого вызов функции stop() перед тем как переключающаяся анимация была завершена приводит к тому, что анимация теряет свое состояние и последующие анимации начинающиеся из состояния "останова" нередко приводят к тому, что выбранный элемент постепенно исчезает.

Во всяком случае так пишут в рекомендациях. А как на самом деле?

Давайте, создадим несложную программу, а там и посмотрим, что и как, потому что в теории одно на практике бывает совсем не так:

 
                         < script type="text/javascript">$(document).ready(function(){
	                                      $('#pokaz_6').stop().mouseover(function(){
	                                      $('#pokaz_6').html('< img src="../rezerv/dsc22252.gif" 
                                                         id="photo"  height="250" width="450">')
                                          .fadeIn(800)
                                          .fadeOut(800)
                                          .fadeIn(800);
                                      });
                                  });
                         < /script>
                         < div id="pokaz_6" style=" border: 1px solid #F00; 
                                                    height: 250; 
                                                    width: 450; 
                                                    margin: 20px auto 20px 100px">
                         < /div>

seosait21.ru
HTML

seosait21.ru
CSS

seosait21.ru
Web-диз.
HTML ссылка CSS ссылка ...

seosait21.ru
JavaScript

seosait21.ru
PHP

seosait21.ru
JQuery
JavaScript ссылка PHP ссылка JQuery ссылка

seosait21.ru
SEO.

seosait21.ru
MySQL

seosait21.ru
XML
... ... ...

обратно на главную     назад    дальше     вперед

ПОНРАВИЛОСЬ?
ПОДЕЛИСЬ с ДРУЗЬЯМИ: