vue 鼠标划入划出多传一个参数

这篇具有很好参考价值的文章主要介绍了vue 鼠标划入划出多传一个参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

// item可以传递弹窗显示数据, $event相关参数可以用来做弹窗定位用
@mouseover="handleMouseOver($event, item)" @mouseleave="handleMouseLeave($event, item)"

举个栗子: 做一个hover提示弹窗组件(用的vue3框架 + less插件)
可以将组件放在代码的最外层文章来源地址https://www.toymoban.com/news/detail-843303.html

<div
   v-show="show"
   ref="recentRef"
   class="recent-item-tip"
   :style="{ left: posX + 'px', top: posY + 'px', opacity: opacity }"
   @mouseover="handleMouseOver2" @mouseleave="handleMouseLeave2"
  >
      {{ '这里添加提示相关信息' }}
</div>

<script>
import { ref, ,nextTick } from 'vue';
// 提示内容
const titleInfo = ref('')
// 鼠标的横轴 
let posX = ref(0);
// 鼠标纵轴
let posY = ref(0);
// 控制显隐
let show = ref(false);
// 是否透明
let opacity = ref(0);
// 触发hover的DOM
const recentRef = ref<HTMLDivElement | null>(null);
const timer = ref(null);
// 获取鼠标位置
function handleMouseOver(e, item) {
  titleInfo.value = item.titleInfo;
  // 防抖
  if (timer.value) {
    clearTimeout(timer.value);
  }
  timer.value = setTimeout(() => {
    // 更新列表
    handleChangePos(e, item);
    clearTimeout(timer.value);
  }, 500);
}
// 这两个xx2函数是为了当鼠标划入提示弹窗内让弹窗不消失
function handleMouseOver2(e, item) {
  show.value = true;
}
function handleMouseLeave2(e, item) {
  show.value = false;
}
// 提示框定位
function handleChangePosition(e, item) {
  show.value = true;
  pushInfo.value = item.pushTime;
  let clientHeight = document.documentElement.clientHeight;
  let clientWidth = document.documentElement.clientWidth;
  let pointX = e.clientX;
  let pointY = e.clientY;
  nextTick(() => {
    // 内容宽高
    let selfWidth = recentRef.valueOf.clientWidth;
    let selfHeight = 80;
    if (pointX + selfWidth > clientWidth) {
      pointX = clientWidth - selfWidth - 10;
    }
    if (pointY + selfHeight > clientHeight) {
      pointY = clientHeight - selfHeight - 10;
    }
    opacity.value = 1;
    posX.value = pointX;
    posY.value = pointY;
  });
}
// 鼠标滑走隐藏
function handleMouseLeave() {
  // show.value = false;
  // opacity.value = 0;
  // pushInfo.value = '';
  clearTimeout(timer.value);
  timer.value = null;
}
</script>

<style lang="less">
  .recent-item-tip {
    height: 80px;
    width: 200px;
    overflow-y: scroll;
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    font-size: 12px;
    padding: 5px;
    line-height: 20px;
    box-sizing: border-box;
    word-break: keep-all;
    background-color: #fff; // #fff
    border: 1px solid #1113171a; // #1113171A
    border-radius: 4px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.3);
    opacity: 0;
  }
 	//滚动条样式
   ::-webkit-scrollbar {
   width: 5px;
   height: 6px;
   border-radius: 16px;
  }
  ::-webkit-scrollbar-thumb {
    border-radius: 16px;
  }
  ::-webkit-scrollbar-track {
    border-radius: 16px;
  }
</style>

到了这里,关于vue 鼠标划入划出多传一个参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript---常用的鼠标事件mouseover 和mouseenter的区别

    一、 mouseover 和mouseenter的区别 mouseover :  只要鼠标指针移入事件所绑定的元素或其子元素,都会触发该事件 mouseenter : 只有鼠标指针移入事件所绑定的元素时,才会触发该事件 简单来说: 1、mouseover和mouseout会有事件冒泡,也就是说鼠标移入、移出当前元素的子元素或父元素时

    2024年02月09日
    浏览(25)
  • vue3鼠标经过显示按钮

    在前端开发中,我们经常需要在页面中添加一些交互效果来提升用户体验。其中一个常见的需求就是鼠标经过某个元素时显示一个按钮,这个按钮可以用于触发一些操作或者显示更多的内容。 在本篇文章中,我将会介绍如何使用 Vue3 实现一个鼠标经过显示按钮的效果,同时还

    2024年02月09日
    浏览(22)
  • vue3鼠标拖拽滑动效果

    第一步 在utils下面新建一个directives.js文件,然后引入如下代码 第二步 在main.js中引入  第三步 页面直接使用即可

    2024年02月11日
    浏览(19)
  • vue3+mapboxgl鼠标浮动显示cgcs2000

    鼠标在地图中浮动展示地图的经纬度,cgcs2000 xy 还有显示带号 展示经度,纬度,x值,y值显示的是带号和y值 初始化地图后.on方法中有个mousemove方法 可以看出方法的参数中有经纬度,我们可以通过经纬度获取他的cgcs2000 xy  我这边用的是proj4,添加依赖 引用proj4    wgs84的参数

    2024年02月16日
    浏览(15)
  • Vue3 vxe-table 手写鼠标区域选中

    参考原文地址:vxe-table 鼠标滑动选择多行,鼠标区域选中批量操作[2]-CSDN博客 准备vxe-talbe@4.5.7,Vue@3.3.4,在原作者的基础上进行了修改,修改后和官网几乎无差别,允许左右侧固定列选中,允许任意范围选中,但是键盘监听功能没添加//感觉没啥软用.... 先看效果: 正常鼠标从左上往右下

    2024年02月05日
    浏览(28)
  • vue3 - 实现图片放大缩小和拖曳拖动功能,鼠标移入图像可拖曳移动,鼠标移入图像时滚轮放大缩小功能(vue3网页项目让图片支持鼠标拖动和滚轮放大缩小详细教程,提供完整示例源码,一键复制开箱即用!)

    在 vue3 网站项目中,详细实现图片拖曳拖动、缩小放大功能,鼠标移入图片时可滚轮放大缩小和拖拽图像功能示例, 直接复制全部代码,运行后简单修改即可使用。 以下就是示例图的完整代码,可复制运行。

    2024年02月03日
    浏览(30)
  • echarts的横向柱状图文字省略,鼠标移入显示内容 vue3

    效果图 如果是在x轴上的,就在x轴上添加 triggerEvent: true, 如果是y轴就在y轴添加,我是在y轴上添加的 并且自定义的方法(我取名为 extension ) 然后我放在末尾引入的 数据格式

    2024年02月04日
    浏览(30)
  • Vue3之setup参数介绍

    使用setup函数时,它将接受两个参数: props context 让我们更深入地研究如何使用每个参数 setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样,setup函数中的props是响应式的,当传入新的prop时,它将被更新。 Warning :因为 props 是响应式的,你不能使用ES6解构,

    2024年02月16日
    浏览(16)
  • Vue3学习(十九) - 使用Vue完成页面参数传递

    我知道自己现在的状态很不好,以为放个假能好好放松下心情,结果昨晚做梦还在工作,调试代码,和领导汇报工作。 天呐,明明是在放假,可大脑还在考虑工作的事,我的天那,这是怎么了? 1、任务拆解 页面跳转时带上当前电子书id参数ebookId 新增/编辑文档时,读取电子

    2024年03月09日
    浏览(24)
  • uniapp,vue3路由传递接收参数

    官网vue2升vue3的教程中,演示了如何使用onLoad,记得把官网所有内容都看一遍!!! 传递对象参数 接收对象参数

    2024年02月15日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包