iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue自定义加水波纹效果指令实例代码
  • 218
分享到

Vue自定义加水波纹效果指令实例代码

2024-04-02 19:04:59 218人浏览 泡泡鱼
摘要

目录前言自定义指令指令的作用水波纹水波纹效果实现原理核心代码实现总结前言 大家好,我是不吃鱼d猫,过年以来。断更许久,又回来了,学无止境,作为程序员知识是要不断更新迭代的。在此期间,

前言

大家好,我是不吃鱼d猫,过年以来。断更许久,又回来了,学无止境,作为程序员知识是要不断更新迭代的。在此期间,接触了几天的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。

代码实现

上面我们分析了分析,接下来我们用代码实现。

结构:

 <div class="app">
        <h1>{{title}}</h1>
        <button v-shuibowen="">点我发散水波纹</button>
        <!-- <div class="box" v-shuibowen=""></div> -->
    </div>

实例化一个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,代码没有优化,望见谅。自定义水波纹指令的好处就是,哪里需要用到水波纹的效果就往哪里加。

到此这篇关于Vue自定义加水波纹效果指令的文章就介绍到这了,更多相关Vue自定义水波纹指令内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue自定义加水波纹效果指令实例代码

本文链接: https://www.lsjlt.com/news/140201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue自定义加水波纹效果指令实例代码
    目录前言自定义指令指令的作用水波纹水波纹效果实现原理核心代码实现总结前言 大家好,我是不吃鱼d猫,过年以来。断更许久,又回来了,学无止境,作为程序员知识是要不断更新迭代的。在此期间,...
    99+
    2024-04-02
  • Android自定义View实现水波纹效果
    介绍:水波纹散开效果的控件在 App 里面还是比较常见的,例如 网易云音乐歌曲识别,附近搜索场景。看下实现的效果:实现思路: 先将最大圆半径与最小圆半径间距分成几等份,从内到外,Paint 透明度依次递减,绘制出同心圆,然后不断的改变这些同...
    99+
    2023-05-30
    android view 水波纹
  • Android实现水波纹效果实例代码
    效果图 attrs.xml 自定义属性 <declare-styleable name="RippleAnimationView"> <attr...
    99+
    2024-04-02
  • Vue怎么实现加水波纹效果
    本篇内容主要讲解“Vue怎么实现加水波纹效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue怎么实现加水波纹效果”吧!自定义指令指令的作用言简意赅,就是操作底层dom当然vue自身有非常强大...
    99+
    2023-06-29
  • Android 自定义view实现水波纹动画效果
    在实际的开发中,很多时候还会遇到相对比较复杂的需求,比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果,兴致高昂的来找你,看了之后目的很明确,当然就是希望你能给她;在这样的关键时候,身子板就一定得硬了,可千万别说不行,爷们儿怎么能说不行呢;好了...
    99+
    2023-05-31
    android 水波纹 roi
  • Android自定义View实现水波纹扩散效果
    目录1、创建RippleView.class, 继承与View1.1特殊属性解释 1.2新建attrs.xml文件(res/values)1.3初始化画笔2、开始绘制onD...
    99+
    2024-04-02
  • Android 通过自定义view实现水波纹效果案例详解
    在实际的开发中,很多时候还会遇到相对比较复杂的需求,比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果,兴致高昂的来找你,看了之后目的很明确,当然就是希望你能给她; 在这样的关键时候,身...
    99+
    2024-04-02
  • Android自定义WaveProgressView实现水波纹加载需求
    先看效果图:  你可以定义成你项目的logo图片,可以设置水波颜色、波长、波宽、字体大小、颜色、进度条的最大值,当前进度值,还可以设置波纹震动的快慢。当设置一个进度不变的时候,打开时还有一个动画填满的效果(比如第二个流量显示,这里图片没有截...
    99+
    2023-05-30
    android waveprogressview 水波纹
  • Android编程使用自定义View实现水波进度效果示例
    本文实例讲述了Android编程使用自定义View实现水波进度效果。分享给大家供大家参考,具体如下:首先上效果图:简介:自动适应屏幕大小;2.水波自动横向滚动;3.各种绘制参数可通过修改常量进行控制。代码不多,注释也比较详细,全部贴上:(一...
    99+
    2023-05-31
    android 自定义 view
  • vue实现水波涟漪效果的点击反馈指令
    目录水波效果来看实现 定制一个水波纹默认样式 计算水波纹的位置和直径 鼠标按下时创建水波 鼠标抬起时销毁水波 通过指令binding去扩展你的水波选项 写在最后 水波效果 当用户点击...
    99+
    2024-04-02
  • Vue使用自定义指令实现页面底部加水印
    项目场景 给项目的整个背景加上自定义水印,可以改变水印的文案和字体颜色等 实现思路 这里使用的技术主要是canvas,在实现水印的过程中,主要使用了canvas的特性 ...
    99+
    2024-04-02
  • Vue自定义指令及使用实例
    这篇文章主要介绍了Vue自定义指令及使用实例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、什么是指令学习 vue 的时候肯定会接触指令,那么什么是指令呢?在 vue 中提...
    99+
    2023-06-15
  • Vue自定义指令v-focus实例详解
    目录前言自定义指令 directive项目实际使用技术背景实际操作优势setTimeout(fn, 0) 永远的神$nextTick(callback)小结前言 本文直接参考vue2...
    99+
    2024-04-02
  • VUE 自定义指令:让你的前端代码更灵活高效
    创建自定义指令 创建自定义指令涉及以下步骤: 定义一个函数:该函数将接收三个参数:指令值、绑定元素和绑定对象。 注册指令:使用 Vue.directive() 方法将指令函数注册到 Vue 实例中。 Vue.directive("my...
    99+
    2024-03-14
    自定义指令
  • Vue自定义指令的使用实例介绍
    目录何为自定义指令实例解析1.基本知识介绍2.使用自定义指令实现改变输入框位置总结何为自定义指令 通过前面的学习,我们都有了一定的Vue知识,我们都知道可以在Vue实例创建后,在te...
    99+
    2023-05-16
    Vue自定义指令使用 Vue自定义指令原理
  • 怎么在vue中实现水波涟漪效果的点击反馈指令
    这篇文章将为大家详细讲解有关怎么在vue中实现水波涟漪效果的点击反馈指令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。定制一个水波纹默认样式水波纹实际上就是通过用户点击的位置生成一个小圆圈,...
    99+
    2023-06-15
  • Python自定义指标聚类实例代码
    目录前言与KMeans++比较Yolo 检测框聚类总结前言 最近在研究 Yolov2 论文的时候,发现作者在做先验框聚类使用的指标并非欧式距离,而是IOU。在找了很多资料之后,基本确...
    99+
    2024-04-02
  • Vue实现带参数的自定义指令示例
    正文 自定义指令参考官方文档:vuejs.bootcss.com/guide/custo… <!DOCTYPE html> <html lang="...
    99+
    2023-01-11
    Vue 带参数自定义指令 Vue 参数指令 Vue 自定义指令
  • Vue3编写自定义指令插件的示例代码
    编写自定义插件 // src/plugins/directive.ts import type { App } from 'vue' // 插件选项的类型 interface Opt...
    99+
    2024-04-02
  • 关于Vue自定义指令实现元素拖动的详细代码
    昨天在做的一个功能时,同时弹出多个框展示多个表格数据。 这些弹出框可以自由拖动。单独的拖动好实现,给元素绑定 mousedowm 事件。 这里就想到了 Vue 里面自定义指令来实现。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作