2013-11-18 3 views
3

Я хотел бы анимировать небольшой текст, я хочу отображать буквы один за другим?Как анимировать буквы в тексте с помощью css3?

Есть ли способ сделать это с помощью CSS3?

+0

[проверить это] (http://tympanus.net/Tutorials/CSS3RotatingWords/index5.html) out –

+1

Я думаю, вам нужно разделить букву по диапазону и управлять ею –

ответ

0

попробовать это

http://www.hungry-media.com/code/jQuery/tickerType/

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

+0

y не используя css? – user1834809

+0

@ user1834809 Ссылка, которую я поделил, использует css, но только css не может решить ваше требование. Вам нужно несколько сценариев, чтобы сделать текст dymanic – gurvinder372

3

Просто обернуть ваши письма в один тег, например span и оживить их. W3C specification имеет только first-letter псевдокласс.

+0

, поэтому нам нужно использовать javascript для динамических узлов, правильно? – user1834809

+0

Да, используйте javascript или лучше плагины jQuery (см. Другие сообщения для ссылок плагинов) – Pinal

+0

@ user1834809. Это правда, что css3 еще не может применять псевдоклассы к заданной букве, строка nth-child. Также верно, что на данный момент вам придется обернуть буквы и применить анимацию к оберткам. http://codepen.io/FWeinb/pen/djuIx Это плагин nth-letter. Затем вы можете применить анимацию в css к любой заданной букве в слове. – oddy

2

Или это проверить ключевыми кадры анимации

@-webkit-keyframes typing { 
    from { width: 0 } 
    to { width:16.3em } 
} 

@-moz-keyframes typing { 
    from { width: 0 } 
    to { width:16.3em } 
} 

@-webkit-keyframes blink-caret { 
    from, to { border-color: transparent } 
    50% { border-color: black } 
} 

@-moz-keyframes blink-caret { 
    from, to { border-color: transparent } 
    50% { border-color: black } 
} 

body { font-family: Consolas, monospace; } 

h1 { 
    font-size:150%; 
    width:16.3em; 
    white-space:nowrap; 
    overflow:hidden; 
    border-right: .1em solid black; 

    -webkit-animation: typing 17s steps(30, end), /* # of steps = # of characters */ 
         blink-caret 1s step-end infinite; 
    -moz-animation: typing 17s steps(30, end), /* # of steps = # of characters */ 
         blink-caret 1s step-end infinite; 
} 
+1

не вставляйте кучу ненужного кода. – user1834809

1

http://letteringjs.com/ плагин для JQuery, который оборачивает каждую букву в промежутке tag для анимации, но сохраняет html в источнике. Хорошее решение, если вы уже используете jQuery, к сожалению, пока нет чистого решения для CSS.

1

Если вам нужно только показать что-то по буквам, вам не нужно JQuery или Textillate или любой другой плагин. Просто скопируйте это.

<script type="text/javascript"> 
function printLetterByLetter(destination, message, speed){ 
    var i = 0; 
    var interval = setInterval(function(){ 
     document.getElementById(destination).innerHTML += message.charAt(i); 
     i++; 
     if (i > message.length){ 
      clearInterval(interval); 
     } 
    }, speed); 
} 

window.onload = function(){ 
    printLetterByLetter("someElement", "Hello world, bonjour le monde.", 100); 
} 
</script> 

Замените 'someElement' на идентификатор элемента html, где отображается текст. Замените «100» на любой другой номер. Здесь это означает, что новое письмо появляется каждые 100 миллисекунд.

Смежные вопросы