Размытый текст при использовании css перехода и поворота

0

У меня есть размахивающий div на моей странице, и на нем есть текст. Я делаю качающуюся анимацию с помощью css rotate и jquery. Вы можете увидеть это здесь http://jsfiddle.net/novellino/Em7ej/

Моя проблема в том, что текст становится размытым, когда div начинает двигаться. Я пробовал решения, такие как добавление:

 -webkit-backface-visibility: hidden;

в css или этом:

 -webkit-transform-origin: 50%  51%;

но все еще не работает. Кто-нибудь знает, если и как я могу это решить?

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

Теги:
css-transitions
rotation
blurry

1 ответ

0

Это артефакт от движков текстового рендеринга в браузере. Текст не кэшируется, а отображается для каждого изменения, в результате чего каждая отдельная точка преобразуется (поворачивается). Ошибки и ошибки округления приводят к несколько несогласованному рендерингу.

Чтобы избежать этой проблемы, вы можете сначала перенести текст в изображение и использовать его. Вы можете сделать это двумя способами:

  • Предварительная подготовка в автономном режиме и использование этого
  • Отобразить текст в реальном времени с помощью элемента холста

это имеет дополнительное преимущество для повышения производительности.

Модифицированная скрипка здесь

var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d');

canvas.width = 90;
canvas.height = 90;

ctx.fillStyle = '#613a1c';
ctx.font = '16px serif';
ctx.textBaseline = 'top';
ctx.fillText('Hello', 20, 20);
ctx.fillText('I am the', 20, 38);
ctx.fillText('text', 20, 56);

document.getElementById('info_txt').appendChild(canvas);
  • 0
    Спасибо за ответ, но я все еще вижу размытый текст в скрипке. Возможно, идея рендеринга текста на изображении лучше.
  • 0
    Я попробовал это даже с изображением, и пока выглядит размытым
Показать ещё 1 комментарий

Ещё вопросы

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