css实现打字机,并给出完整的代码
时间: 2024-09-19 20:18:11 浏览: 55
css3动态输入打字效果代码.zip
CSS实现打字机动画通常通过`@keyframes`规则配合`animation`属性来完成,下面是一个简单的示例,它会在页面上模拟一个文字逐行输入的效果:
HTML部分:
```html
<div class="typewriter">
<p class="cursor">|</p>
<span class="text">这是一段文本,会逐行显示。</span>
</div>
```
CSS部分:
```css
.typewriter {
width: 100%;
overflow: hidden;
}
.text {
white-space: nowrap; /* 防止换行 */
animation: type 4s steps(5) infinite;
}
.cursor {
position: absolute;
right: 0;
animation: blink 0.7s step-end infinite;
}
@keyframes type {
from { transform: translateX(0); }
to { transform: translateX(calc(-1 * (var(--typed-length)))) }
}
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
/* 使用JavaScript动态更新typed-length变量 */
<script>
document.addEventListener('DOMContentLoaded', function() {
var text = document.querySelector('.text');
var cursor = document.querySelector('.cursor');
var typedLength = 0;
setInterval(function() {
if (typedLength < text.innerText.length) {
text.style.setProperty('--typed-length', typedLength + 'ch');
typedLength++;
cursor.style.left = typedLength + 'ch';
} else {
// 当所有内容都显示完后,回到开头
text.style.setProperty('--typed-length', 0);
typedLength = 0;
}
}, 100);
});
</script>
```
注意,这段代码依赖于JavaScript来更新动画的位置。你可以根据需要修改动画速度、步骤数等。
阅读全文