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 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
详解javascript函数的参数
Nov 10 Javascript
js实现下拉列表选中某个值的方法(3种方法)
Dec 17 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
Vue.js搭建移动端购物车界面
Jun 28 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
微信小程序基于Taro的分享图片功能实践详解
Jul 12 Javascript
浅谈vue权限管理实现及流程
Apr 23 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实现蜘蛛访问日志统计
2013/07/05 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
srcElement表格样式
2006/09/03 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
小学教师自我鉴定范文
2014/03/20 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS