css跑马灯

本文详细介绍了一种使用CSS实现跑马灯效果的方法,通过关键帧动画和transform属性,使文字在页面上滚动显示,提供了完整的HTML和CSS代码示例。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Css跑马灯</title>
    <style>
        div, p{
            margin: 0;
            padding: 0;
        }
        .box{
            position: relative;
            width: 300px;
            height: 200px;
            border: 5px solid #aaa;
            margin: 0 auto;
            overflow: hidden;
        }
        .box .text{
            position: absolute;
            left: 300px;
            top: 0;
            height: 200px;
            line-height: 200px;
            font-size: 100px;
            white-space:nowrap;
            animation: slidein 5s linear 0s infinite running;/* 5s决定跑马灯一次滚动的时长,自己调整 */
        }
        @keyframes slidein {
            from { 
                transform: translateX(300px); /* 盒子宽度 */
            }
            to { 
                transform: translateX(-1150px);/* 平移距离 = 文案标签长度 + 盒子宽度 */
            }
        }
    </style>
</head>
<body>
    <div class="box">
        <p class="text">
            这是一个css跑马灯
        </p>
    </div>
</body>
</html>
### CSS 实现跑马灯效果 跑马灯效果是一种常见的网页动画效果,通常用于展示滚动的文本内容,例如新闻标题、广告语等。使用纯 CSS 实现跑马灯效果,可以减少 JavaScript 的依赖,并提升页面性能。 实现的基本思路是通过 `@keyframes` 动画结合 `transform: translateX()` 来控制文本的位置,使其从右向左无限滚动。以下是一个完整的实现示例: #### HTML 结构 ```html <div class="marquee"> <span>这里是需要滚动的文本</span> </div> ``` #### CSS 样式 ```css .marquee { display: inline-block; white-space: nowrap; overflow: hidden; position: relative; } .marquee span { display: inline-block; padding-left: 100%; /* 初始位置在容器外右侧 */ animation: marquee 10s linear infinite; } @keyframes marquee { from { transform: translateX(0%); } to { transform: translateX(-100%); } } ``` #### 代码说明 - `white-space: nowrap` 用于防止文本换行,确保所有内容在一行内显示。 - `overflow: hidden` 用于隐藏超出容器范围的内容。 - `padding-left: 100%` 确保文本初始位置在容器的右侧之外,实现无缝滚动。 - `animation: marquee 10s linear infinite` 定义了动画的持续时间、速度曲线和无限循环。 - `@keyframes marquee` 中的 `transform: translateX(-100%)` 控制文本从右向左移动。 #### 扩展:无缝滚动 如果希望实现无缝滚动效果,可以将文本内容复制一份,并放在同一个容器中。这样,当第一段文本完全移出屏幕时,第二段文本会紧接着出现,形成连续滚动的效果。 ```html <div class="marquee"> <span>这里是需要滚动的文本</span> <span>这里是需要滚动的文本</span> </div> ``` ```css .marquee span { display: inline-block; animation: marquee 10s linear infinite; } @keyframes marquee { from { transform: translateX(0%); } to { transform: translateX(-50%); } } ``` 在这个扩展版本中,动画的 `transform: translateX(-50%)` 确保两段文本交替滚动,避免出现空白间隔。 #### 优势 - **性能优化**:无需 JavaScript,完全依赖 CSS 动画,提升页面性能。 - **兼容性**:现代浏览器普遍支持 `@keyframes` 和 `transform` 属性,兼容性较好。 - **灵活性**:可以通过调整动画时间、文本内容和样式来实现不同的滚动效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值