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 相关文章推荐
一款纯css3实现简单的checkbox复选框和radio单选框
Nov 05 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
Jan 09 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
Oct 21 HTML / CSS
CSS3实现莲花绽放的动画效果
Nov 06 HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
Jul 25 HTML / CSS
HTML5单页面手势滑屏切换原理
Mar 21 HTML / CSS
如何利用input事件来监听移动端的输入
Apr 15 HTML / CSS
HTML5的postMessage的使用手册
Dec 19 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
Nov 04 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
Mar 04 HTML / CSS
使用 CSS 构建强大且酷炫的粒子动画效果
Aug 14 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数据库密码的找回的步骤
2011/01/12 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
javascript基础知识
2016/06/07 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python读写文件操作示例程序
2013/12/02 Python
基于python的字节编译详解
2017/09/20 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
Python下载的11种姿势(小结)
2020/11/18 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
什么时候用assert
2015/05/08 面试题
戒毒悔改检讨书
2014/09/21 职场文书
门店店长岗位职责
2015/04/14 职场文书
地道战观后感400字
2015/06/04 职场文书
红与黑读书笔记
2015/06/29 职场文书
2019军训心得体会
2019/06/27 职场文书
导游词之日月潭
2019/11/05 职场文书
python基础之文件操作
2021/10/24 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python
Python获取字典中某个key的value
2022/04/13 Python