📌  相关文章
📜  如何使用 CSS 创建来电动画效果?

📅  最后修改于: 2022-05-13 01:56:26.596000             🧑  作者: Mango

如何使用 CSS 创建来电动画效果?

在本文中,我们将学习如何使用 CSS 创建来电动画效果。

方法:要创建这种效果,我们基本上需要为元素框架周围的阴影效果设置动画,可以使用 CSS box-shadow轻松操作 财产。它由相对于元素的 X 和 Y 偏移量、模糊和扩展半径以及颜色来描述。为了创建动画效果,我们使用 CSS 动画属性,它允许我们配置动画序列如何进行的时间、持续时间和其他细节。为了控制动画序列的中间步骤,我们使用 @keyframes 在动画序列的整个持续时间内指定/更改 CSS 样式属性。

句法:

box-shadow: offset-x | offset-y | blur-radius | color 

HTML 代码:在“index.html”中,我们定义了我们的元素,动画效果将在哪个元素上起作用。链接包含动画代码的样式表。

index.html



    
    
    Incoming Call Animation
    
    
    


    
            


main.css
html,body{
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #71AFFF;
}
.call-animation{
    background: rgb(130, 221, 233);
    width: 100px;
    height: 100px;
    border-radius: 100%;
    border: solid 5px rgb(252, 241, 241);
    animation: call 1.5s ease infinite;
    color: aliceblue;
    font-size: 35px;
    font-weight: bold;
    position: relative;
}
  
.caller-img{
    position: absolute;
    height: 50px;
    width: 50px;
    top: 35px;
    left: 35px;
}
  
@keyframes call {
    15% {
        box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.5);
    }
    25% {
        box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.5),
                    0 0 0 16px rgba(255, 255, 255, 0.3);
    }
    30% {
        box-shadow: 0 0 0 12px rgba(255, 255, 255, 0.5),
                    0 0 0 24px rgba(255, 255, 255, 0.3);
    }
}


CSS 代码:在“main.css 文件中,我们使用类名call-animation定位元素它具有 CSS动画属性,它指定动画名称、动画持续时间、动画定时功能动画迭代计数。使用@keyframes,我们改变CSS box-shadow 属性,在动画序列的间隔。这些间隔以百分比指定,其中 0% 表示动画的开始,100% 表示动画的完成。

main.css

html,body{
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #71AFFF;
}
.call-animation{
    background: rgb(130, 221, 233);
    width: 100px;
    height: 100px;
    border-radius: 100%;
    border: solid 5px rgb(252, 241, 241);
    animation: call 1.5s ease infinite;
    color: aliceblue;
    font-size: 35px;
    font-weight: bold;
    position: relative;
}
  
.caller-img{
    position: absolute;
    height: 50px;
    width: 50px;
    top: 35px;
    left: 35px;
}
  
@keyframes call {
    15% {
        box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.5);
    }
    25% {
        box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.5),
                    0 0 0 16px rgba(255, 255, 255, 0.3);
    }
    30% {
        box-shadow: 0 0 0 12px rgba(255, 255, 255, 0.5),
                    0 0 0 24px rgba(255, 255, 255, 0.3);
    }
}

输出:

来电