Странная проблема с отображением анимации в Safari - PullRequest
1 голос
/ 05 апреля 2011

делает глубокий вдох

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

Структура HTML:

<div id="scroll">
        <div class="container_16">
            <div id="header" class="grid_9 suffix_3 alpha omega">           
                <!-- the links that control animation -->
                <ul>
                    <li><a href="example link">Example 1</a></li>
                    <li><a href="example link">Example 2</a></li>
                </ul>
            </div> <!-- end #header --> <div class="main grid_8 alpha omega">
        <div class="content grid_12 alpha">
            <div id="the_content">
                <!-- content is loaded in here via ajax -->
            </div><!-- end the_content -->
        </div><!-- end .content -->

        <div class="clear"></div>
        <div id="footer">
            Footer stuff
        </div>
    </div> <!-- end .main .grid_8 .alpha .omega -->
</div> <!-- end .container_16 -->
</div> <!-- end scroll -->

Краткий фрагмент CSS:

#background_container {
    position: absolute;
    left: 0px;
    top: 0px;
    z-index: -1000;
    width: 100%;
    height: 100%;
}
#scroll {
    width: 100%;
    height: 100%;
    overflow: auto;
}

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


По сути, когда фоновый div прокручивается от первой позиции к последней позиции, содержимое в Safari, по-видимому, кратковременно «скручивается».

Видео этого поведения: [Отредактированный]

В видео я демонстрирую как сафари, так и firefox. Как вы можете видеть, в Safari во время анимации происходит сжатие / сбои содержимого. В Firefox это не так. Safari, похоже, единственный браузер, который делает это. Это даже работает в IE6. :)

Div, который выглядит как "scrunch", кажется, <div id="header" class="grid_9 suffix_3 alpha omega">, но иногда вы можете кратко увидеть полосу прокрутки, которая предполагает, что <div id="scroll"> может быть основной причиной.

Это проблема рендеринга Safari, которая является распространенной и ее можно избежать? Или мне просто смириться с этим?

Заранее спасибо!

1 Ответ

3 голосов
/ 05 апреля 2011

Необходимо установить -webkit-transform: transform на исходном элементе, чтобы аппаратно ускорялся при загрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...