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 相关文章推荐
用Javascript读取中文COOKIE的解决办法
Feb 15 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
jquery实现按Enter键触发事件示例
Sep 10 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
javascript包装对象实例分析
Mar 27 Javascript
js实现延时加载Flash的方法
Nov 26 Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
利用vue实现模态框组件
Dec 19 Javascript
seajs下require书写约定实例分析
May 16 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 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多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
php模板引擎技术简单实现
2016/03/15 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
js 字符串操作函数
2009/07/25 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python使用selenium实现批量文件下载
2019/03/11 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
成教自我鉴定
2013/10/27 职场文书
物理研修随笔感言
2014/02/14 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Python+Tkinter制作专属图形化界面
2022/04/01 Python