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 相关文章推荐
HTML5 CSS3给网站设计带来出色效果
Jul 16 HTML / CSS
基于css3实现漂亮便签样式
Mar 18 HTML / CSS
css3媒体查询中device-width和width的区别详解
Mar 27 HTML / CSS
CSS3实现菜单悬停效果
Nov 17 HTML / CSS
HTML5等待加载动画效果
Jul 27 HTML / CSS
HTML5和以前HTML4的区别整理
Oct 20 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
Jun 15 HTML / CSS
使用HTML5的Notification API制作web通知的教程
May 08 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
Dec 16 HTML / CSS
详解Canvas实用库Fabric.js使用手册
Jan 07 HTML / CSS
HTML table 表格边框的实现思路
Oct 12 HTML / CSS
纯html+css实现Element loading效果
Aug 02 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实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
夜不归宿检讨书
2014/02/25 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python