Vue怎么实现加水波纹效果
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"Vue怎么实现加水波纹效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Vue怎么实现加水波纹效果"吧!自定义指令指令的作用言简意赅,就
千家信息网最后更新 2025年02月06日Vue怎么实现加水波纹效果
本篇内容主要讲解"Vue怎么实现加水波纹效果",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Vue怎么实现加水波纹效果"吧!
自定义指令
指令的作用
言简意赅,就是操作底层dom
当然vue自身有非常强大的指令功能,代替你进行dom操作,比如v-on绑定事件对不对,这应该大家熟悉的指令,100%要用到,毕竟js就是个事件驱动的语言。还有大家可以去官方文档去看看
水波纹
实现
原理
我们在点击的时候,鼠标会发散一个圆,是不是有点击事件触发了,此时我们就增加一个span标签,当然要给他设置宽高,等属性,而且我们观察,圆的颜色是慢慢没有的,所以还有opacity属性,还有span是不是跟随鼠标移动的,所以还有添加定位属性。
核心
注意发现,span发散的圆是不断变大的,所以宽高是不断变化的,变化,我们就能想到定时器,定时器里面就可以控制圆的宽高,让span变化的属性不断有规律变化,当然要有临界值,我们可以看看下图
我们可以看看需求,水波纹,肯定是要覆整个按钮的,那么span的发散半径肯定就是按钮中最大的距离,如图所示,对角线肯定最长边,一目了然。怎么求,在构造函数Math有个方法可以求Math.sqrt(a*a+b*b)所以span的宽高是2倍的最长距离。所以临界值找到了,达到都就清除定时器,让span的属性不在变化。并且删除span。
代码实现
上面我们分析了分析,接下来我们用代码实现。
结构:
{{title}}
实例化一个vue对象。
const vm = new Vue({ data: { title: "自定义指定设置水波纹" } }).$mount(".app")
自定义指令
Vue.directive('shuibowen', { //binding 指令携带的变量数据 inserted: function(el, binding) { el.addEventListener('click', function(e) { let x = e.clientX - el.offsetLeft let y = e.clientY - el.offsetTop //在鼠标位置增加一个span标签 let span = document.createElement("span") span.style.position = "absolute" span.style.background = binding.value || 'rgba(150, 91, 91, .5)' span.style.opacity = 1; span.style.borderRadius = '50%' el.append(span) let width = 0 let height = 0 let opacity = 1 let max_length = Math.sqrt(el.offsetWidth * el.offsetWidth + el.offsetHeight * el.offsetHeight) * 2 let time = setInterval(() => { width += 5 height += 5 opacity -= 0.01 //判断超出最大值时,清除定时,并且删除span if (width < max_length) { span.style.width = width + 'px' span.style.height = height + 'px' span.style.opacity = opacity; span.style.left = x - span.offsetWidth / 2 + 'px' span.style.top = y - span.offsetHeight / 2 + 'px' } else { clearInterval(time) time = null; span.remove() } }, 10) }) } })
到此,相信大家对"Vue怎么实现加水波纹效果"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
波纹
指令
属性
变化
效果
不断
事件
定时器
就是
鼠标
肯定
最大
最长
临界值
代码
内容
按钮
方法
标签
分析
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安全狗3.5创建服务器名
服务器的搭建与管理总结
软件开发工程师怎么做私活
qq空间显示服务器繁忙
成都蓉翼众创网络技术公司
无线通信网络安全ppt
SR866服务器
郑州手机软件开发定制费用
域服务器控制上网
金山区高科技软件开发应用范围
服务器被打了可以打开宝塔吗
软件开发辉哥
服务器里怎么查看域电脑
omf数据库
12v服务器电源启动瞬间电流
信阳软件开发优化价格
ibm服务器巡检
帝国神话创建服务器怎么设置
应届软件开发面试题
可乐球智能云音箱连不上服务器
qt开发数据库
后进者网络安全工程师
计算机网络技术大学期末考试
廊坊峰杰网络技术
计算机网络技术省考代码
网络安全试点项目
绘制网络安全网络拓扑图
163企业邮箱收发服务器
兴仁手机app软件开发公司
网络安全人才奖推选