CSS之变量(四)悬浮跟踪按钮

简介: CSS之变量(四)悬浮跟踪按钮

前言


前几天我们学习了变量,并通过变量画了两种不同风格的进度条,今天呢,我们再来实现一个有意思的东西 -- 悬浮跟踪按钮,好了,废话不多说,开始。


悬浮跟踪按钮


实现之前,我们要先了解三个 js 的api:


JS中有3个操作变量的API,看上去简单易记。


  • 读取变量:element.style.getPropertyValue()
  • 设置变量:element.style.setProperty()
  • 删除变量:element.style.removeProperty()

还是按照惯例,先看效果图:


image.png


看完之后,相信你也有一点头绪了,首先,要按照主体布局,其次实现的主要部分就是,根据鼠标的滑动来显示样式。这我们可以通过js获取当前节点的offsetXoffsetY,在计算出 x轴 和 y轴的位置,并设置两个变量,在通过 :before属性引入变量,来动态设置样式就可以了。


代码实现


<a class="track-btn" @mousemove="move">
  <span>忽如一夜春风来, 千树万树梨花开</span>
</a>
复制代码


export default {
  setup() {
    const move = (e) => {
      const x = e.pageX - e.target.offsetLeft;
      const y = e.pageY - e.target.offsetTop;
      e.target.style.setProperty("--x", `${x}px`);
      e.target.style.setProperty("--y", `${y}px`);
    }
    return {
      move,
    }
  }
}
复制代码


.track-btn {
  overflow: hidden;
  position: relative;
  border-radius: 25px;
  width: 400px;
  height: 50px;
  background-color: black;
  cursor: pointer;
  line-height: 50px;
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  color: #fff;
  span {
    position: relative;
    pointer-events: none;
  }
  &::before {
    --size: 0;
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: var(--size);
    height: var(--size);
    background-image: radial-gradient(circle closest-side, pink, transparent);
    content: "";
    transform: translate3d(-50%, -50%, 0);
    transition: width 200ms ease, height 200ms ease;
  }
  &:hover::before {
    --size: 400px;
  }
}
复制代码


看看是不是很简单,多看几遍,相信你也可以写出来。

好,今天就到这里了,今天努力的你依然是最棒的,Bye Bye!!!

相关文章
|
4月前
|
前端开发 开发者
CSS变量,也被称为CSS自定义属性或级联变量
【4月更文挑战第7天】CSS变量,也被称为CSS自定义属性或级联变量
43 3
|
29天前
|
前端开发 UED
设计新潮流:CSS动画毛玻璃按钮,展开效果引人入胜!
设计新潮流:CSS动画毛玻璃按钮,展开效果引人入胜!
|
29天前
|
前端开发 搜索推荐 容器
创意按钮,触手可及:CSS不规则形状效果揭秘!
创意按钮,触手可及:CSS不规则形状效果揭秘!
|
1月前
|
前端开发
css来实现一个好玩的按钮
这段代码实现了一个具有独特悬停效果的按钮。通过定义按钮及其`:after`伪元素,并设置初始状态下的透明度和尺寸,当鼠标悬停在按钮上时,背景色平滑过渡至另一种颜色,产生视觉上的动态扩展效果。为避免覆盖文字,特地调整了伪元素的层级,确保交互过程中文字始终可见。整体效果流畅自然,增强了用户界面的互动性与美观度。
42 0
|
2月前
|
前端开发
css特效——纯css绘制图标:带框的加号(添加按钮)、三横(三道杠)、带圈点(双层圆点)
css特效——纯css绘制图标:带框的加号(添加按钮)、三横(三道杠)、带圈点(双层圆点)
52 5
|
3月前
|
前端开发
CSS动画(毛玻璃按钮)
CSS动画(毛玻璃按钮)
|
3月前
|
前端开发
CSS动画效果(鼠标滑过按钮动画)
CSS动画效果(鼠标滑过按钮动画)
|
3月前
|
前端开发 JavaScript 开发者
CSS进阶-CSS变量
【6月更文挑战第13天】本文介绍了CSS变量(Custom Properties)的基本概念、应用场景和常见问题。通过声明与使用示例,展示了如何定义和引用变量。文章讨论了兼容性、作用域、错误引用及JavaScript交互等易错点,并提供了相应的解决方案。此外,还分享了实践技巧,如模块化色彩系统、响应式设计和动画制作。通过学习,开发者能更好地利用CSS变量提高样式灵活性和维护性。
38 3
|
2月前
|
前端开发 JavaScript 编译器
如何在CSS中写变量?一文带你了解前端样式利器
如何在CSS中写变量?一文带你了解前端样式利器
38 0
|
2月前
|
前端开发 SEO
css实用技巧——最佳可访问性隐藏(网站左上角的logo,用label替代表单提交按钮)
css实用技巧——最佳可访问性隐藏(网站左上角的logo,用label替代表单提交按钮)
28 0