首页 > 其他分享 >CSS实现跑马灯效果

CSS实现跑马灯效果

时间:2023-03-21 19:34:56浏览次数:34  
标签:box linear 效果 100% transform height 跑马灯 background CSS

盒子区域

创建一个大盒子,用来装我们的广告语,还有跑马灯的四个小盒子
<div class="box">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        创意广告
    </div>
  设置box样式
* {
        padding: 0;
        margin: 0;
    }
    
    body {
        background-color: black;
    }
    
    .box {
        width: 100px;
        height: 50px;
        background-color: transparent;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        line-height: 50px;
        font-size: 18px;
        font-family: '宋体';
        color: rgb(99, 225, 247);
        overflow: hidden;
    }
 

设置灯光效果

先设置第一个元素的渐变效果,我们这里设置的是顶部的灯光效果,这里我们使用left的属性,设置这个盒子的位置;使用width:100%,使得这个盒子的宽度与大盒子保持一致。
.box :nth-child(1) {
        background: linear-gradient(to right, transparent, #0FF);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 2px;
    }
第二个子元素
.box :nth-child(2) {
        position: absolute;
        background: linear-gradient(to bottom, transparent, #0FF);
        top: 0;
        right: 0;
        width: 2px;
        height: 100%;
    }
第三个子元素
.box :nth-child(3) {
        position: absolute;
        bottom: 0;
        left: 0;
        height: 2px;
        width: 100%;
        background: linear-gradient(to left, transparent, #0FF);
    }
第四个子元素
.box :nth-child(4) {
        background: linear-gradient(to top, transparent, #0FF);
        position: absolute;
        bottom: 0;
        left: 0;
        width: 2px;
        height: 100%;
    }
 

设置动画效果

我们使用@keyframe属性为我们的灯光添加动画效果
@keyframes run1 {
        0% {
            transform: translateX(-100px);
        }
        100% {
            transform: translateX(100px);
        }
    }
给盒子加上动画
.box :nth-child(1) {
        background: linear-gradient(to right, transparent, #0FF);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 2px;
        animation: run1 1s linear infinite;
    }
可以设置延迟使效果更加好看,每个盒子比前一个盒子多整体代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>跑马灯效果</title>
</head>

<body>
    <div class="box">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        创意广告
    </div>
</body>

</html>

<style>
    * {
        padding: 0;
        margin: 0;
    }
    
    body {
        background-color: black;
    }
    
    .box {
        width: 100px;
        height: 50px;
        background-color: transparent;
        position: absolute;
        top: 50%;
        transform: translate(-50%, -50%);
        left: 50%;
        text-align: center;
        line-height: 50px;
        font-size: 18px;
        font-family: '宋体';
        color: rgb(99, 225, 247);
        overflow: hidden;
    }
    
    .box :nth-child(1) {
        background: linear-gradient(to right, transparent, #0FF);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 2px;
        animation: run1 1s linear infinite;
    }
    
    .box :nth-child(2) {
        position: absolute;
        background: linear-gradient(to bottom, transparent, #0FF);
        top: 0;
        right: 0;
        width: 2px;
        height: 100%;
        animation: run2 1s linear infinite;
        animation-delay: .5s;
    }
    
    .box :nth-child(3) {
        position: absolute;
        bottom: 0;
        left: 0;
        height: 2px;
        width: 100%;
        background: linear-gradient(to left, transparent, #0FF);
        animation: run3 1s linear infinite;
        animation-delay: 1s;
    }
    
    .box :nth-child(4) {
        background: linear-gradient(to top, transparent, #0FF);
        position: absolute;
        bottom: 0;
        left: 0;
        width: 2px;
        height: 100%;
        animation: run4 1s linear infinite;
        animation-delay: 1.5s;
    }
    
    @keyframes run1 {
        0% {
            transform: translateX(-100px);
        }
        100% {
            transform: translateX(100px);
        }
    }
    
    @keyframes run2 {
        0% {
            transform: translateY(-50px);
        }
        100% {
            transform: translateY(50px);
        }
    }
    
    @keyframes run3 {
        0% {
            transform: translateX(100px);
        }
        100% {
            transform: translateX(-100px);
        }
    }
    
    @keyframes run4 {
        0% {
            transform: translateY(50px);
        }
        100% {
            transform: translateY(-50px);
        }
    }
</style>
 

效果图

 

标签:box,linear,效果,100%,transform,height,跑马灯,background,CSS
From: https://www.cnblogs.com/happy-p/p/17241158.html

相关文章

  • CSS基础
    一、CSS介绍CSS的意思为CascadingStyleSheets,中文名是层叠样式表。CSS是由大名鼎鼎的W3C中CSS工作组来发布以及维护CSS作用是修饰HTML和XML的标记......
  • Web前端——HTML5与CSS3新增内容
    Web前端笔记第四部分:HTML5与CSS31.圆角border-radius各种圆角实例/左上角60的圆弧//border-top-left-radius:60px;//四个角设置相同的圆弧//border-radius:60px;//......
  • 纯 CSS 实现瀑布流式排版
    最近写了个页面,想到了用瀑布流实现页面布局。在我看来一个合格的横向瀑布流式布局包含以下几个条件:1、每个内容块高度可以不等,但宽度相等。由于内容的不确定性,内容块......
  • CSS02.字体样式
    字体样式1.CSS外观属性1.1color:文本颜色作用:color属性用于定义文本的颜色其取值方式有如下3种:表示属性值预定义的颜色值(预设值:定义好的单词)red、green......
  • 因果推断dowhy之-评估会员奖励计划的效果
    0x01.案例背景评估订阅或奖励计划对客户的影响的例子。假设一个网站有会员奖励计划,如果客户注册,他们会得到额外的好处。我们如何知道该会员奖励计划是有用的?翻译成因果推断......
  • Solon2 接口开发: 实战 Gateway 模式效果
    1、效果预览网关@Mapping("/api/v3/app/**")@ComponentpublicclassApiGateway3xextendsUapiGateway{@Overrideprotectedvoidregister(){fi......
  • CSS 组合选择符
    CSS组合选择符组合选择符说明了两个选择器之间的关系。CSS组合选择符包括各种简单选择符的组合方式。在CSS3中包含了四种组合方式:后代选择器(以空格   ......
  • CSS 高阶小技巧 - 角向渐变的妙用!
    本文将介绍一个角向渐变的一个非常有意思的小技巧!我们尝试使用CSS绘制如下图形:在之前,类似的图案,其实我们有尝试过,在单标签实现复杂的棋盘布局一文中,我们用单标签实......
  • Vue实现图片点击隐藏效果
    一  创建一个web项目,本地导入vue.js    创建一个包含HTML基本项目的Web项目,在js文件下下导入本地的Vue.js文件,通过<scriptsrc="js/vue.js"></script>将Vue.js文......
  • CSS Content 属性的几种妙用和技巧
    Content属性是CSS中一个非常有用的属性,可以用于插入生成内容,如在::before和::after伪元素中添加文本或图标。Content属性的特点:Content属性仅可用于::before......