首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js边框带水波纹渐变的效果

要实现JavaScript边框带水波纹渐变的效果,我们可以使用CSS和JavaScript结合的方式。以下是实现这一效果的基础概念、优势、类型、应用场景以及具体的代码示例。

基础概念

  1. CSS渐变:使用CSS的linear-gradientradial-gradient属性来创建渐变效果。
  2. 动画:通过CSS的@keyframes规则定义动画序列,并应用到元素上。
  3. JavaScript事件处理:监听鼠标事件(如mouseentermouseleave),触发渐变动画。

优势

  • 视觉吸引力:水波纹渐变效果能增加界面的动态感和美观度。
  • 交互性:用户与元素的交互(如悬停)能立即得到视觉反馈。

类型

  • 线性水波纹:渐变效果沿直线扩散。
  • 径向水波纹:渐变效果从中心点向外扩散。

应用场景

  • 按钮美化:增强按钮的点击效果。
  • 卡片布局:使卡片在用户关注时更加突出。
  • 导航菜单:提升导航项的交互体验。

示例代码

以下是一个简单的示例,展示如何在鼠标悬停时为元素添加水波纹渐变效果:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>水波纹渐变效果</title>
<style>
  .ripple-effect {
    position: relative;
    width: 200px;
    height: 100px;
    background-color: #f0f0f0;
    border: 2px solid transparent;
    transition: border-color 0.3s;
  }

  .ripple-effect:hover {
    border-color: #007bff;
  }

  .ripple-effect::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    background: rgba(0, 123, 255, 0.7);
    opacity: 0;
    border-radius: 50%;
    transform: scale(1, 1) translate(-50%);
    transform-origin: 50% 50%;
  }

  .ripple-effect:hover::before {
    animation: ripple-animation 1s ease-out;
  }

  @keyframes ripple-animation {
    0% {
      transform: scale(1, 1) translate(-50%);
      opacity: 1;
    }
    100% {
      transform: scale(20, 20) translate(-50%);
      opacity: 0;
    }
  }
</style>
</head>
<body>

<div class="ripple-effect"></div>

</body>
</html>

解释

  • HTML结构:一个简单的div元素用于展示效果。
  • CSS样式
    • .ripple-effect定义了基本样式和悬停时的边框颜色变化。
    • ::before伪元素用于创建水波纹的中心点。
    • @keyframes ripple-animation定义了水波纹扩散和消失的动画。
  • JavaScript:在这个例子中,我们没有直接使用JavaScript,而是通过CSS的:hover伪类来触发动画。

可能遇到的问题及解决方法

  1. 动画不流畅:确保浏览器支持CSS动画,并且没有其他复杂的动画同时运行,这可能会影响性能。
  2. 兼容性问题:在不同的浏览器中测试效果,必要时使用前缀或回退方案。
  3. 动画触发时机:如果动画触发过早或过晚,可以调整@keyframes中的时间点和属性值。

通过以上步骤,你可以创建一个简单而有效的水波纹渐变效果,增强用户的交互体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 水波纹效果的探究

长按水波纹扩展效果 前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果...Mask的内容并不会被绘制到屏幕上,它的作用是限定Ripple效果的绘制区域。 最后可以得到我们想要的效果: ? image.png 长按水波纹扩散效果 ?...长按水波纹扩展效果 在使用小红书时,我们可以看到关于“笔记”的item长按会展示扩散的效果,其实原理也很简单。...无边界的水波纹可以达到长按扩散的效果,只是它会超出边界,那我们就在对应的父布局加一层有边界的水波纹背景即可。...参考资料 Ripple 水波纹效果 聊聊Android5.0中的水波纹效果 解决点击ripple水波纹无效的问题 UI之修改Button颜色保持默认点击效果

2.4K20
  • 【Android UI】Paint Gradient 渐变渲染 ③ ( RadialGradient 环形渐变渲染 | 在给定中心和半径的情况下绘制径向渐变的着色器 | 水波纹效果 )

    文章目录 一、RadialGradient 环形渐变渲染 1、设置多个渐变颜色的构造函数 2、设置两个渐变颜色的构造函数 二、完整代码示例 1、设置多个渐变颜色的构造函数 2、设置两个渐变颜色的构造函数...三、效果展示 一、RadialGradient 环形渐变渲染 ---- Paint 的 RadialGradient 是 环形渐变渲染 ; RadialGradient 是 在给定中心和半径的情况下...绘制径向渐变 的着色器。...此渐变的圆半径。 centerColor: Int : 圆中心的sRGB颜色。 edgeColor: Int : 圆边缘的sRGB颜色。...此渐变的圆半径。 centerColor: Long : 圆中心的颜色。 edgeColor: Long: 圆边缘的颜色。

    85920

    修改Vue.js版本,以修复MuseUI没有水波纹效果的BUG

    前言 学习Vue了一段时间,个人还是比较喜欢Material Design风格的框架,找了很久,最满意的也就是Muse-ui了。...然后就发现了一个超级恶心和严重的问题,它不支持Vue@2.6.8以上版本。...具体表现就是版本不符的时候没有基本的波纹效果(要MD就是要找个风格没有这个我玩nm),我本来以为是Chrome的问题,但是,直到我提交了issue,得到回答查了很多资料,就连官方都没告诉你怎么降版本,自己捣鼓了一晚上算是搞定了...vue-template-compiler npm uninstall vue npm uninstall vue-template-compiler vue-template-compiler这个和vue是同版本号的,...结束 真的发现真正的干货网上太少了,或者有人写过但是博客和我一样是个人博客,压根搜不到。唉 如果这篇文章帮助到你了,请分享给你的朋友,感激不尽。

    1.2K10

    css实现带圆角的渐变0.5像素border

    有一个需求,需要实现一个带圆角的渐变border,大概类似这样:图片上手第一件事当然是康康border支不支持渐变,于是发现:border-image这个属性支持渐变。好!加上,刷新。...在微信小程序里面1rpx的边框是不生效的,会被计算成2rpx。解决这个问题的办法一般是给想要设置边框的元素加一个大小为它两倍的伪元素。...那如果能有三个盒子,最上面的负责正常显示,中间的负责提供一个透明的1rpx的border,然后它自己有一个背景色。最下面的盒子负责提供一个渐变的背景色。这样子由于中间的盒子边框透明且有背景色。...那岂不是只有边框会被下面的盒子的渐变背景染色。那不就获得了一个渐变的1rpx的border?ok!...于是一个完美的1rpx的带圆角的渐变border就出来了:图片全部代码:.border-test{ position: absolute; width: 160rpx; height:

    1.8K30

    在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial

    theme: smartblue Fabric.js 简介 用官方的话来讲 Fabric.js 是一个强大而简单的 Javascript HTML5 canvas 工具库 简单来说,如果你需要用...本文使用的开发环境 本文案例中使用了 Fabric.js 4.6 这个版本。 使用了 Vite 构建 Vue3 项目。...安装 Fabric.js npm install fabric --save 为什么本文只写渐变?...渐变是 Fabric.js 的基础功能,但网上大部分文章都只写 线性渐变,很少有写到径向渐变的,因为官方好像也没给出径向渐变的例子。 甚至还见过有些文章和评论说 Fabric.js 只支持线性渐变。...但这个说法是错的!!! image.png 没错,本文只想证明在 Fabric.js 4.6版本中是可以实现径向渐变的。

    3.1K30

    【Flutter】仿 Element 样式 Progress 进度条

    先看下整体效果 依赖 在 「pubspec.yaml」 中依赖 ele_progress:^version 最新版本号在 「pub」 中查看:「ele_progress」 地址:https://pub.dev...属性 「progress」:进度,值的范围:0-100。 「colors」 :进度条的颜色,这是一个数组类型,设置一个颜色表示纯色,设置多个是渐变色。...「direction」 :进度条的方向,type=line和liquid时起作用。 「borderColor」 :边框颜色,type=liquid时起作用。...「borderWidth」:边框宽度,type=liquid时起作用。 「radius」 :边框圆角,type=liquid时起作用。...EProgress( progress: 50, type: ProgressType.liquid, ) 「colors」 :表示进度条的颜色,这是一个数组类型,设置一个颜色表示纯色,设置多个是渐变色

    2.2K20

    Power BI 渐变效果的几种实现方式

    渐变效果按照用途可以分为装饰类和指示类。装饰类渐变完全是为了美观,指示类渐变指渐变随着数据大小变化。以下分场景介绍如何实现。 装饰渐变之页面背景 页面背景渐变通过填充渐变图片实现。...装饰渐变之图表内部 这种效果Power BI原生条形柱形等视觉对象目前不支持,借助SVG的渐变功能在表格内嵌图表可以实现。...下图是线性渐变: 下图是径向立体渐变: 指示渐变之表格矩阵条件格式 表格矩阵中,条件格式背景色有渐变选项: 效果如下: 这种渐变不够灵活,可以为RGB颜色代码增加alpha值(0-1之间),度量值定义渐变...指示渐变之条形柱形 上方定义的RGBA渐变也可应用于条形图柱形图: 指示渐变之表格内嵌型图表 如果你需要大量的使用表格内嵌型SVG图表,实现渐变有两种方式。...一种是把RGBA定义的颜色放入fill: 另一种是fill颜色不变,增加fill-opacity参数: 上图可以看到两种方式的显示效果相同。渐变就分享到这里,按需取用。

    10500

    灵活运用CSS开发技巧

    ,大家一起进步 Layout Skill 使用vw定制rem自适应布局 要点:移动端使用rem布局需要通过JS设置不同屏幕宽高比的font-size,结合vw单位和calc()可脱离JS的控制 场景:rem...在线演示 使用transform描绘1px边框 要点:分辨率比较低的屏幕下显示1px的边框会显得模糊,通过::before或::after和transform模拟细腻的1px边框 场景:容器1px边框...在线演示 使用:hover描绘鼠标跟随 要点:将整个页面等比划分成小的单元格,每个单元格监听:hover,通过:hover触发单元格的样式变化来描绘鼠标运动轨迹 场景:鼠标跟随轨迹、水波纹、怪圈 兼容:...在线演示 使用linear-gradient控制背景渐变 要点:通过linear-gradient设置背景渐变色并放大背景尺寸,添加背景移动效果 场景:主题化、彩虹背景墙 兼容:gradient、animation...在线演示 动态边框 要点:鼠标悬浮时动态渐变显示的边框 场景:悬浮按钮、边框动画 兼容:gradient 代码:在线演示 ?

    4.6K20

    带圆角的虚线边框?CSS 不在话下

    因此,在有圆角的情况下,我们就需要另辟蹊径。 利用渐变实现带圆角的虚线效果 当然,本质上我们还是需要借助渐变效果,只是,我们需要转换一下思路。 譬如,我们可以使用角向渐变。...此时,这样的背景效果可用于创建一种渐变黑色到透明的重复纹理效果: 在这个基础上,我们只需要给这个图形上层,再利用伪元素,叠加一层颜色,就得到了我们想要的边框效果,并且,边框间隙和大小可以简单调整。...: 与上面方法一类似,再通过在这个图形的基础上,在元素中心,叠加多一层纯色遮罩图形,只漏出最外围一圈的图形,带圆角的虚线边框就实现了: 此方法比上面第一种渐变方法更好之处在于,虚线每一条线段的长度是固定的...并且,不管是哪个方法,都存在一定的瑕疵。譬如如果希望边框中间不是背景色,而是镂空的,上述两种 CSS 方式都将不再使用。 因此,对于带圆角的虚线边框场景,最佳方式一定是 SVG。...通过一个动图,简单感受一下: 总结一下 本文介绍了 2 种在 CSS 中,不借助切图和 SVG 实现带圆角的虚线边框的方式: 重复角向渐变叠加遮罩层 重复线性渐变叠加遮罩层 当然,两种 CSS 方式都存在一定瑕疵

    40110

    CSS实现渐变色边框(Gradient borders)的5种方法

    给 border 设置渐变色是很常见的效果,实现这个效果有很多思路,今天把我所知道的方法罗列于此供大家参考。 1....通过 border-image 设置渐变色 border 是最简单的方法,只需要两行代码: CSS: div { border: 4px solid; border-image: linear-gradient...使用 background-image 使用 background-image 绘制渐变色背景,并且把中间用纯色遮住应该是最容易想到的一种方法,思路是:使用两个盒子叠加,给下层的盒子设置渐变色背景和 padding...两层元素、background-image、background-clip 为了解决方法 2 中 border-radius 不准确的问题,可以使用一个单独的元素作为渐变色背景放在最下层,上层设置一个透明的...、background-origin、background-image 这三个属性,每个属性设置两组值,第一组用于设置border内的单色背景,第二组用于设置border上的渐变色。

    10.9K30

    js实现html表格标签中带换行的文本显示出换行效果

    思考问题 1、可以看到表格的内容是后端传来的数据,于是想直接在后端转换下,把换行符替换成标签 ?...3、继续想,准备在数据加载后,在js里面处理下,把文本内容中的换行符转为标签;但是如果一个内容有多行文字,我就要把它拆分为多个小节,好加,但是这些分开的文字怎么连在一起呢,势必还需要继续加标签...把原先每一小节的内容放到一个p里。好,就这么干把。。...''); span.appendChild(p_end); $(this).append(span); }); } 3、期间又遇到一个问题,按想象中写好之后执行效果如下...我的第四行跑哪去了?F12看了下,第四行的p也是有的啊,好吧,p内容是空它不显示。。。 ? 5、可以看到第2点的代码中标粉色的地方,我给空p加了个br,还是没能绕过br....好吧这下显示正常了 ?

    17.2K30

    仿百度外卖的酷炫水波纹效果

    作者博客 http://www.jianshu.com/u/5aad180d1ea8 前言 在网上经常会看到别人写的一些开源项目,然后会惊叹于他们的写的效果,当然那些大神也会把代码放出来,然后供大家看,...我来写下我最近学的动画效果及相关的知识。 仿百度外卖个人中心效果 ? 我们先来看下这个自定义的View的代码是如何实现的。 ? ? ? 我们一步步来分析。首先我们要自定义一个View。 ?...2.绘制内容(onDraw) onDraw是实际绘制的部分,也就是我们真正关心的部分,使用的是Canvas绘图。 ? 我们是不是在想这个百度个人中心效果到底是怎么实现的,在这里我要贴个图: ?...有人要问,lineTo不是画直线的么。其实这个sin和cos曲线就是被我们一小段一小段的用线段画出来的。 ? ? 比如画上述这个sin函数。我们画好后。怎么让他不停的往左移动,产生波浪的效果呢。...这样就不停的上下的浮动了。 ? 附上Activity及layout的代码: Activity: ? Layout: ? 最后咱们做出来的效果图就是这样滴: ?

    46130
    领券