iPad css3 анимация мерцает после использования клавиатуры

Пространство "кучи" Java ограничено по умолчанию, но это все еще звучит как экстремальное значение (хотя, насколько большой Ваши 50 000 сегментов?)

я подозреваю, что у Вас есть некоторая другая проблема, как массивы в наборе, становящемся слишком крупными, потому что все присвоено в тот же "слот" (также выполнение влияния, конечно). Однако это кажется маловероятным, если Ваши точки равномерно распределены.

я задаюсь вопросом хотя, почему Вы используете HashMap, а не TreeMap? Даже при том, что точки являются двумерными, Вы могли разделить их на подклассы со сравнить функцией и затем регистрируете (n) поиски.

17
задан Daniel 17 January 2011 в 14:37
поделиться

3 ответа

Глядя на ваш источник, translate3d (0,0,0) не применяется до начала перехода?

Попробуйте

.screen{
    -webkit-transform: translate3d(0,0,0);
}

или

.screen *, .screen{
        -webkit-transform: translate3d(0,0,0);
}

Мерцание - это, вероятно, аппаратное ускорение (в настоящее время оно работает только с трехмерными переведенными элементами).

1
ответ дан 30 November 2019 в 14:43
поделиться

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

document.getElementById('clicked_input').addEventListener('focus', function(e){
    e.stopPropagation();
},false);

Когда я тоже занялся этой проблемой, мне показалось, что я попробовал все - в конце концов, единственное, что мне помогло, - это создать модальное окно (position: absolute) вне div контейнера приложения, а также установить приложение. контейнер div для отображения: false; когда клавиатура подходила. Хотя это работало, это было уродливо, я проверил все, чтобы увидеть, что вызвало событие, и казалось, что, когда всплыло «событие фокуса», каждое 3d преобразование портится (в мерцании и производительности).

Предотвращение события пузырения решило эту проблему полностью - совершенно ошеломляюще, что такая ненавистная ошибка имела такое простое решение?

1
ответ дан 30 November 2019 в 14:43
поделиться

Я согласен с Беном, вам, вероятно, следует установить преобразования и для самих классов:

/*************************************************
Slide Left
*************************************************/
.screen.slideleft{
 -webkit-animation-duration: 0.5s;
 -webkit-animation-timing-function: ease-in-out;
 -webkit-transform: translate3d(0,0,0);
}
.screen.slideleft.outgoing{
 z-index: 50 !important;
 -webkit-animation-name: slideleft-outgoing;
 -webkit-transform: translate3d(-100%,0,0);
}
.screen.slideleft.incoming{
 z-index: 100 !important;
 -webkit-animation-name: slideleft-incoming;
 -webkit-transform: translate3d(0,0,0);
}
@-webkit-keyframes slideleft-outgoing{
 from { -webkit-transform: translate3d(0,0,0); }
 to { -webkit-transform: translate3d(-100%,0,0); }
}
@-webkit-keyframes slideleft-incoming{
 from { -webkit-transform: translate3d(100%,0,0); }
 to { -webkit-transform: translate3d(0,0,0); }
}

Если это не сработает, мне было бы интересно проверить, переводит ли X только с translateX(-100%) исправляет проблему. (Не обязательно исправление, потому что у вас нет аппаратного ускорения без 3D-преобразований, но это поможет сузить проблему.)

0
ответ дан 30 November 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: