Jquery анимация в Firefox 7.0.1 отстает - PullRequest
3 голосов
/ 22 ноября 2011

Кто-нибудь знает, почему эта очень простая анимация jquery отлично работает в некоторых браузерах, таких как Chrome, и кажется, что она содержит ошибки в Firefox 7.0.1?Вот ссылка на анимацию.Если вы попробуете это в Firefox, вы увидите, что анимация иногда зависает, а затем перезапускается.Как видите, код очень прост, только одна анимация, без изображений и встроенного CSS.

html:

<div id="content" style="position: relative;width: 500px;height: 500px;overflow: hidden;">
    <ul id="slider" style="position: absolute;top:0;left:0;">
        <li style="background-color: red;height: 500px;width: 500px;list-style-type: none;"></li>
        <li style="background-color: green;height: 500px;width: 500px;list-style-type: none;"></li>
        <li style="background-color: blue;height: 500px;width: 500px;list-style-type: none;"></li>
    </ul>
</div>

JS:

$(document).ready(function () {
    to_move=$('#slider');
    to_move.animate({
       top: "-1000px"
    }, 15000,'linear');
});

СпасибоВы за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

То, что вы видите, - это сборщик мусора Firefox, работающий так часто.

Через Блог Дэйва Манделина :

Справочная информация о том, что GC, есливы не знакомы: при запуске программы на JavaScript она создает объекты, массивы, строки и функции, которые занимают память.Чтобы не использовать всю вашу память и аварийно завершить работу, движок JS должен иметь возможность автоматически обнаруживать, какие объекты больше не используются (так что теперь они «мусор»), и освобождать их.Эта подсистема «автоматического восстановления памяти» называется сборщиком мусора, или GC.)

Причина пауз в том, что SpiderMonkey использует старый школьный сборщик меток и разметок «остановка мира»

Огромные улучшения GC Firefox запланированы, но еще не реализованы - см. Эту ссылку для получения дополнительной информации.

0 голосов
/ 22 ноября 2011

Я не знаю много о внутренней работе jquery, но я предполагаю, что он использует событие изменения размера для этого div. Firefox плохо обрабатывает события, я не уверен, что есть способ это исправить. Вот еще немного информации: http://www.quirksmode.org/dom/events/resize.html

...