2016-02-10 2 views
0

Если бы слово CANDY, буквы A и D исчезли бы, а затем остальные буквы C, N, Y будут перемещаться вместе и заполнять пробелы, чтобы читать CNY вместо CN Y.Анимируйте некоторые буквы, исчезающие из слова, а затем остальные буквы перемещаются вместе, чтобы заполнить пустые пространства.

Я не уверен, что вы можете сделать это только с помощью CSS3, или если вам нужно использовать JavaScript, но все в порядке. Я также хочу, чтобы анимация зацикливалась бесконечно, с возвращением CNY в CANDY.

+0

Голосование, чтобы закрыть это как "слишком широка", кажется, откровенно смешно. –

+0

Если, конечно, закрытые избиратели используют «слишком широкий» в качестве прокси для «без усилий». Хотя «никакие усилия» не являются веской причиной ** голосования **, это не то же самое, что «слишком широкое» и само по себе не заслуживает самого близкого голосования. –

ответ

0

Определите класс с анимацией, применяемой к символам, которые будут исчезать и выходить. Анимация одновременно изменяется на ширину до 0, а непрозрачность - на 0.

Я также хочу, чтобы анимация проходила бесконечно, с возвращением CNY в CANDY.

Вот что такое animation-iteration-count: infinite и animation-direction: alternate.

.fade { 
 
    animation-name: fade; 
 
    animation-duration: 3s; 
 
    animation-iteration-count: infinite; 
 
    animation-direction: alternate; 
 
    display: inline-block; 
 
} 
 

 
@keyframes fade { 
 
    from { width: 1em; opacity: 1; } 
 
    to { width: 0px; opacity: 0; } 
 
}
C<span class="fade">A</span>N<span class="fade">D</span>Y

+0

Благодарю вас. Я признаю, что ожидал получить обратную связь о том, можете ли вы сделать это только с помощью CSS или если для этого потребуется JavaScript. У меня была тонкая проблема с формулировкой моих поисковых запросов Google, чтобы попытаться найти способ сделать это только с CSS. После изучения вашего кода я был удивлен, как легко это сделать с CSS. Раньше я использовал базовые анимации CSS, но не понимал, что пробелы будут закрыты сами собой, изменив отображение на «встроенный блок». – ndrw

0

Я не думаю, что это хороший кандидат CSS. Я бы сделал серию из <span> или <div> поплавкового блока: слева, каждая из которых содержала одну букву и складывала каждый из этих div или интервалов в массиве javascript. Затем, вероятно, используйте jQuery для запуска альфа-анимации на буквы, которые вы хотите удалить, - вы не можете использовать fadeOut, потому что, как только они станут невидимыми, float, вероятно, больше не будет работать. Используйте обратный вызов ко второму движению, который перемещает буквы, оставшиеся один символ, когда один из них слева в массиве закончен, и затем удаляет этот символ из массива.

+0

* Я не думаю, что это хороший кандидат CSS. Но разве это не то, что было создано для анимации CSS? –

+0

Для предустановленных анимаций, таких как выцветание, да. Или что-то сдвинуть, да. Для одновременного объединения этих эффектов с кучей динамически генерируемых элементов DOM вам нужно будет использовать прослушиватели в первой анимации для запуска второго, так что вы все равно будете использовать javascript, и это, вероятно, будет меньше работать, чтобы использовать jquery .animate, чем писать анимации в чистом CSS. – joshstrike

+0

Я пытаюсь понять, что вы говорите. «Если бы ОП задал другой вопрос, возможно, ему понадобилось бы использовать JS»? Это, безусловно, возможно, но он задал вопрос, который он сделал, с которым легко справиться с переходами/анимациями CSS, а также с большинством анимаций, которые раньше делались «вручную» в плохие старые дни. –