CSS3 实现发光边框特效


Posted in HTML / CSS onNovember 11, 2020

运行效果:

CSS3 实现发光边框特效

html

<!-- This element is not visible. The DOM is generated by JavaScript -->
<div class="root" style="display: none;">
  <div>
    <div class="side left"></div>
    <div class="side top"></div>
    <div class="side right"></div>
    <div class="side bottom"></div>
  </div>
</div>

CSS

body {
  margin: 0;
  width: 100vw;
  height: 100vh;
  background: #010326;
}

.root {
  --glow_width: 2px;
  --animation_length: 2s;
  --delay_factor: 2;

  position: absolute;
  left: 50%;
  top: 50%;
  width: 300px;
  height: 300px;
  transform: translate(-50%, -50%) rotate(45deg);

/*  Uncomment the line below to see how this system is set up  */
/*   border: 1px dashed red; */
  overflow: hidden;
}

.side {
  position: absolute;
  top: 0;
  left: 0;
}

.side.left,
.side.right {
  width: var(--glow_width);
  height: 0;
  background: linear-gradient(to bottom, transparent, #c03225, transparent);
  animation: heightAnim var(--animation_length) linear infinite,
    hider calc(var(--delay_factor) * var(--animation_length))
      var(--animation_length) infinite;
}

.side.top,
.side.bottom {
  width: 100%;
  height: var(--glow_width);
  background: linear-gradient(to left, transparent, #c03225, transparent);
  animation: widthAnim var(--animation_length) 0s linear infinite,
    hider calc(var(--delay_factor) * var(--animation_length))
      var(--animation_length) infinite;
}

.side.right {
  left: auto;
  right: 0;
  height: 0;
  animation-delay: calc(var(--animation_length) / 2);
  animation-direction: normal, reverse;
}

.side.bottom {
  top: auto;
  bottom: 0;
  width: 0;
  animation-delay: calc(var(--animation_length) / 2);
  animation-direction: normal, reverse;
}

@keyframes heightAnim {
  0% {
    height: 0px;
  }
  50% {
    height: 300px;
    transform: initial;
  }
  100% {
    transform: translate(0, 300px);
  }
}

@keyframes widthAnim {
  0% {
    width: 0px;
  }
  50% {
    width: 300px;
    transform: initial;
  }
  100% {
    transform: translate(300px, 0px);
  }
}

@keyframes hider {
  0%,
  50% {
    opacity: 0;
  }
  51%,
  100% {
    opacity: 1;
  }
}

js

let template = `<div class="root" style="transform: translate(-50%, -50%) rotate({{ value }})">
<div>
    <div class="side left"></div>
    <div class="side top"></div>
    <div class="side right"></div>
    <div class="side bottom"></div>
  </div>
</div>`

let segments = 9
for(let i = -segments; i < segments; i++){
  document.body.innerHTML += template.replace("{{ value }}", 90/segments * i + "deg")
}

// document.body.innerHTML += template.replace("{{ value }}", 90/segments * 0 + "deg")

以上就是CSS3 实现发光边框特效的详细内容,更多关于CSS3 发光边框特效的资料请关注三水点靠木其它相关文章!

HTML / CSS 相关文章推荐
全面总结使用CSS实现水平垂直居中效果的方法
Mar 10 HTML / CSS
CSS3网格的三个新特性详解
Apr 04 HTML / CSS
使用CSS3设计地图上的雷达定位提示效果
Apr 05 HTML / CSS
前端隐藏出边界内容的实现方法
Apr 14 HTML / CSS
CSS3实现酷炫的3D旋转透视效果
Nov 21 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
Dec 20 HTML / CSS
html5 canvas 画图教程案例分析
Nov 23 HTML / CSS
HTML5 预加载让页面得以快速呈现
Aug 13 HTML / CSS
基于html5实现的图片墙效果
Oct 16 HTML / CSS
基于html5 canvas做批改作业的小插件
May 20 HTML / CSS
HTML5实现移动端点击翻牌功能
Oct 23 HTML / CSS
html,css,javascript是怎样变成页面的
May 07 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 #HTML / CSS
CSS3制作3D立方体loading特效
Nov 09 #HTML / CSS
CSS3实现莲花绽放的动画效果
Nov 06 #HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 #HTML / CSS
CSS实现进度条和订单进度条的示例
Nov 05 #HTML / CSS
一篇文章带你学习CSS3图片边框
Nov 04 #HTML / CSS
CSS3实现时间轴特效
Nov 02 #HTML / CSS
You might like
php中大括号作用介绍
2012/03/22 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python