Javascript / JQuery замедление при переключении на полный экран

0

У меня есть странное поведение от firefox, я строю портфолио на одной странице, а в качестве графического дизайнера кодирование было сложным. Я хотел плавно управлять навигацией, а затем добавил масштабирование ко всем элементам (первоначально для полноэкранного 1920x1080). Лектор уронил бомбу, что ей тоже нужно было прокручивать вертикально, я пытаюсь заставить вертикальную навигацию работать.

Проблема в том, что, когда я переключаюсь на полноэкранный режим, большинство навигационных кодов, похоже, задерживаются до того, как они выполняются. Это происходит только при переключении на полный экран. Если я переключаюсь и обновляюсь, тогда это нормально. Я действительно хочу знать, что замедляет все это.

Я пробовал безопасный режим без плагинов. Я использую Firefox 24.0 с Firebug, чтобы получить кусочки.

Я создал скрипт кода (мой первый и он уже сломан): http://jsfiddle.net/jeffreyknipe/xfjmC/1/

Код прокрутки выглядит следующим образом:

    function navTo(horizontal, vertical) {
        browserWidth = $(window).innerWidth();
        browserHeight = $(window).innerHeight();
        newRatio = browserWidth / 1920;

        $('html body div#full_site section#pages_section').animate({
            marginLeft: '-' + browserWidth * horizontal,
            marginTop: (browserWidth / 16 * 9) * vertical
        }, 1000);
        if (horizontal == 0) {
            $('#menuspace #floating_topbar #menuzone').animate({
                marginRight: 0
            });
        } else {
            $('#menuspace #floating_topbar #menuzone').animate({
                marginRight: (newRatio * (-340))
            });
        };
    };

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

Благодарю.

  • 0
    Одна вещь, которую вы можете попытаться ускорить, это избавиться от html и body вашего селектора, так как все элементы будут иметь их как родителей. Затем вы можете попробовать избавиться от div в div#full_site и section в section#pages_section поскольку идентификаторы уникальны, и вам не нужно быть более конкретным (если вы не намеренно пытаетесь увеличить его специфичность). По той же причине вы должны быть в состоянии избавиться от #full_site и обоих экземпляров #menuspace #floating_topbar если только вы специально не нацеливаетесь между отдельными страницами. Это должно уменьшить количество проверок, которые им понадобятся.
Теги:
animation
fullscreen

1 ответ

0

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

Я должен предположить, что он хочет анимировать, но java-скрипт-движок или что-то в Firefox слишком заняты во время изменения, это почти ошибка, но я не могу изолировать происходящее, пока скрипт застрял, поэтому я не могу сообщить об этом,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню