资讯专栏INFORMATION COLUMN

前端每日实战:6# 视频演示如何用纯 CSS 绘制一颗闪闪发光的璀璨钻石

snowLu / 2707人阅读

摘要:效果预览按下右侧的点击预览按钮在当前页面预览,点击链接全屏预览。可交互视频教程此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

效果预览

按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。

https://codepen.io/zhang-ou/pen/qYqwQp

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/cp24VfV

源代码下载

请从 github 下载。

https://github.com/comehope/front-end-daily-challenges/tree/master/006-blue-dazzling-diamond

代码解读

定义 dom,容器中包含一个元素:

居中显示:

html,
body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

画出第一组刻面的形状:

.diamond {
    display: grid;
}

.diamond span {
    border-width: 50px;
    border-style: solid;
}

为第一组刻面上色,因为后面还要用到这些色值,所以定义了变量:

:root {
    --color1: deepskyblue;
    --color2: steelblue;
    --color3: royalblue;
    --color4: dodgerblue;
}

.diamond span {
    border-color: var(--color1) var(--color2) var(--color3) var(--color4);
}

dom容器 中再增加3组刻面:

把4组刻面先组成田字格,再转换成钻石形状:

.diamond {
    grid-template-columns: 1fr 1fr;
    transform: rotate(45deg);
}

.diamond span:first-child {
    border-color: transparent var(--color2) var(--color3) transparent;
}

定义动画效果:

@keyframes animate {
    0% {
        border-color: var(--color1) var(--color2) var(--color3) var(--color4);
    }
    
    25% {
        border-color: var(--color4) var(--color1) var(--color2) var(--color3);
    }
    
    50% {
        border-color: var(--color3) var(--color4) var(--color1) var(--color2);
    }
    
    75% {
        border-color: var(--color2) var(--color3) var(--color4) var(--color1);
    }
    
    100% {
        border-color: var(--color1) var(--color2) var(--color3) var(--color4);
    }
}

最后,把动画效果应用到除第1组以外的刻面上:

.diamond span:not(:first-child) {
    animation: animate 2s linear infinite;
}

大功告成!

知识点

variables https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables

border-width https://developer.mozilla.org/en-US/docs/Web/CSS/border-width

border-color https://developer.mozilla.org/en-US/docs/Web/CSS/border-color

grid-template-column https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns

rotate() https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52278.html

相关文章

  • 前端每日实战6# 视频演示何用 CSS 绘制一颗闪闪发光璀璨钻石

    摘要:效果预览按下右侧的点击预览按钮在当前页面预览,点击链接全屏预览。可交互视频教程此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。 showImg(https://segmentfault.com/img/bVbbyvw?w=500&h=500); 效果预览 按下右侧的点击预览按钮在当前页面预览,点击链接全屏预览。 https://codepen.io/zhang-ou/pen/...

    willin 评论0 收藏0
  • 前端每日实战专栏 2018 年 4 月份项目汇总(共 8 个项目)

    摘要:前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书以下是年月份发布的项目视频演示如何用纯创作一个按钮文字滑动特效视频演示如何用纯创作一个矩形旋转特效视频演示如何用纯创作一个容器厚条纹边 《前端每日实战》专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书! 以下是 2018 年 4 月份发...

    draveness 评论0 收藏0
  • 前端每日实战专栏 2018 年 4 月份项目汇总(共 8 个项目)

    摘要:前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书以下是年月份发布的项目视频演示如何用纯创作一个按钮文字滑动特效视频演示如何用纯创作一个矩形旋转特效视频演示如何用纯创作一个容器厚条纹边 《前端每日实战》专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书! 以下是 2018 年 4 月份发...

    legendmohe 评论0 收藏0

发表评论

0条评论

snowLu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<