当前位置: 首页 > article >正文

CSS篇之炫酷框

加上背景之后就是下图:

 实现原理:div大小为20px 20px;那么伪元素大小要比div大出一圈,才能显示出边框;

在鼠标滑过的时候,动态更改伪元素的背景色位置

   <div id="b" class="b"></div>

*{
  --border: 4px;
 border:none;
}

.b{
  width:200px;
  height:200px;
  border:1px solid black;
  box-sizing:border-box;
   position: relative;
  background:#999;
}
.b::after {
  content: "";
  display: block;
  width: calc(100% + var(--border) * 2);
  height: calc(100% + var(--border) * 2);
  position: absolute;
  z-index: -1;
  background-image: var(--bg);
  left:calc(var(--border) * -1);
  top:calc(var(--border) * -1);
}

 

  const b=document.getElementById('b');
b.addEventListener("mousemove", e=>{
 let rect = b.getBoundingClientRect();
   let x = e.pageX - rect.left;
    let y = e.pageY - rect.top;
  b.style.setProperty(
          "--bg",
          `radial-gradient(100px at ${x}px ${y}px, rgba(186, 10, 244, 0.5), rgba(255, 255, 255, 0))`
        );
})

上面是一个dom情况,如果多个dom,可遍历dom,更改radial-gradient属性;一下是多个dom的效果展示:

 

 

多个dom的遍历代码:

window.addEventListener("mousemove", (e) => {
  let bt = document.querySelectorAll(".b");
  for (let i = 0; i < bt.length; i++) {
    let rect = bt[i].getBoundingClientRect();
    let x = e.pageX - rect.left;
    let y = e.pageY - rect.top;
    bt[i].style.setProperty(
          "--afterBack",
          `radial-gradient(100px at ${x}px ${y}px, rgba(186, 10, 244, 0.5), rgba(255, 255, 255, 0))`
        );
  }
});

 


http://www.kler.cn/a/465785.html

相关文章:

  • CoppeliaSim和Python进行无人机联合仿真
  • 【每日学点鸿蒙知识】广告ID、NFC手机充值、CSS支持语法、PC与模拟器交互、SO热更新等
  • 当今世界如何减少暴戾之气和矛盾纷争
  • gaussdb怎么查询一个表所在的表空间的总大小和可用大小,用GB为单位表示?
  • 【CSS】 ---- CSS 实现图片背景清除的滑动效果三种方法
  • JAVA构造方法练习
  • 强力巨彩租赁屏:满足市场需求,打造视觉焦点
  • LeetCode2894 分类求和并作并作差
  • 关于mybatis的框架方面的问题
  • 中关村科金智能呼叫中心能为传统呼叫中心带来什么样的变革?
  • 2025.01.02(数据库)
  • form的方法
  • 结构型模式6.享元模式
  • CameraCtrl: Enabling Camera Control forText-to-Video Generation 论文解读
  • Qemu配置QXL显卡支持分辨率
  • 构建一个简单的Promise
  • LQ24fresh
  • Java项目实战II基于微信小程序的家庭大厨(开发文档+数据库+源码)
  • 经典文献阅读之--Senna(桥接大型视觉语言模型和端到端自动驾驶)
  • el-table动态行和列及多级表头
  • 【每日学点鸿蒙知识】Video播放失败、toggle拖拽、图片裁剪旋转等
  • C语言----函数
  • postgres docker安装
  • 【数据仓库】hadoop3.3.6 安装配置
  • [CTF/网络安全] 攻防世界 command_execution 解题详析
  • df.groupby与apply一起使用,举例项目中实际经常使用的场景