Vue实现鼠标经过文字显示悬浮框效果的示例代码


Posted in Javascript onOctober 14, 2020

需求

在所做的Vue项目中,需要在鼠标移动文字框的时候显示一些详细信息。最终实现的效果如下:

Vue实现鼠标经过文字显示悬浮框效果的示例代码

鼠标经过button的时候,可以在光标附近显示出一个悬浮框,显示框里面显示时间和值的信息,鼠标移出button元素的时候,这个显示框会消失。

分析

涉及到鼠标的移动事件。

鼠标事件有下面这几种:

1、onclick(鼠标点击事件)

box.onclick = function(e){
  console.log(e)
}

2、onmousedown(鼠标按下事件)

box.onmousedown = function(e){
  console.log(e)
}

3、onmouseup(鼠标松开事件)

box.onmouseup = function(e){
  console.log(e)
}

4、onmousemove(鼠标移动事件)

box.onmousemove = function(e){
  console.log(e)
}

5、onmouseout(鼠标划出事件)

box.onmouseout = function(e){
  console.log(e)
}

由鼠标的MouseEvent需要了解几个坐标:

一、clientX、clientY 点击位置距离当前body可视区域的x,y坐标

二、pageX、pageY 对于整个页面来说,包括了被卷去的body部分的长度

三、screenX、screenY 点击位置距离当前电脑屏幕的x,y坐标

四、offsetX、offsetY 相对于带有定位的父盒子的x,y坐标

五、x、y 和screenX、screenY一样

Vue实现鼠标经过文字显示悬浮框效果的示例代码

实现

我实现的思路是写了一个默认的空div,用来展示悬浮框信息。展示的悬浮框是绝对定位,一开始是隐藏的,当触发mouseover事件的时候,把display变为block块级元素,然后获取的event事件,

<div id="mouse" v-if="true" class="version_total">
  </div>
  .version_total{
  position: absolute;
  width: 10%;
  height: 5%;
 }

然后真正的div上面写个mousemove 绑定一个方法传递参数和event事件:在这个方法里面更改样式,最后用innerHtml来展现出来,需要给悬浮框的div元素设置top和left属性,具体的代码如下:

<div :class="[yxInfo[28].value==0 ? 'buttons2':'buttonsRed']" v-if="yxInfo[28]!=undefined" @mousemove="detailInfo($event,yxInfo[28])" @mouseleave="leave($event)" style="top: 37%;left: 63%">{{yxInfo[28].keyName}}</div>

detailInfo(e,data){
    var showDiv = document.getElementById('mouse')
    showDiv.style='background-color:#8c8c8c;border:1px solid black'
    showDiv.style.height='58px'
    showDiv.style.textAlign='left'
    showDiv.style.left = (event.pageX-300) + 'px'
    showDiv.style.top = (event.pageY-120) + 'px'
    showDiv.style.display = 'block'
    let time=data.time;
    let keyValue=data.value;
    var html ="<p>"+"时间:"+time+"</p>";
    var html2 ="<p>"+"值:"+keyValue+"</p>";
    showDiv.innerHTML = html+html2
   },
leave($event){
    var showDiv = document.getElementById('mouse')
    showDiv.style.display = 'none'
    showDiv.innerHTML = ''
}

到此这篇关于Vue实现鼠标经过文字显示悬浮框效果的示例代码的文章就介绍到这了,更多相关Vue 鼠标悬浮框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
Array.prototype.slice 使用扩展
Jun 09 Javascript
js性能优化 如何更快速加载你的JavaScript页面
Mar 17 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
完美实现仿QQ空间评论回复特效
May 06 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
详解vue-cli3使用
Aug 14 Javascript
微信小程序利用云函数获取手机号码
Dec 17 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 #Javascript
原生JS实现相邻月份日历
Oct 13 #Javascript
jquery简易手风琴插件的封装
Oct 13 #jQuery
原生js实现照片墙效果
Oct 13 #Javascript
js轮播图之旋转木马效果
Oct 13 #Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 #Javascript
JavaScript数组常用的增删改查与其他属性详解
Oct 13 #Javascript
You might like
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
php实现Session存储到Redis
2015/11/11 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
JavaScript静态的动态
2006/09/18 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python读写配置文件的方法
2015/06/03 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python 多个参数不为空校验方法
2019/02/14 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
爱国卫生月实施方案
2014/02/21 职场文书
教育读书笔记
2015/07/02 职场文书
预备党员入党感想
2015/08/10 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL