vue中如何实现鼠标定位 $event 应用

首先了解:

  1. 使用不带圆括号的形式,event 对象将被自动当做实参传入;

  2. 使用带圆括号的形式,我们需要使用 $event 变量显式传入 event 对象。

<div id="app">
    <button v-on:click="click">click me</button>
</div>
...
var app = new Vue({
    el: '#app',
    methods: {
        click(event) {
            console.log(typeof event);    // object
        }
    }
});
<button v-on:click="warn('Form cannot be submitted yet.', $event)">
  Submit
</button>


// js 部分
methods: {
  warn: function (message, event) {
    // 现在我们可以访问原生事件对象
    if (event) {
      event.preventDefault()
    }
    alert(message)
  }
}

简单例子:div 鼠标经过现实弹窗,随鼠标移动

1. @mouseenter @mouseleave 控制悬浮框的显示隐藏

2.@mousemove 控制悬浮框出现的位置

<ul class="netimage">
   <li  v-for="(item,index) in data_content" 
   		:key="index" 
   		@mouseenter="enter(item)" 
   		@mouseleave="leave" 
   		@mousemove="updateXY"
   	>
     <img :src="item.imgPath+item.imgName"/>
   </li>
</ul>

<div v-show="seen" class="hover_con" :style="positionStyle">
	  //  悬浮框内容
</div>
export default {
    name: 'netImage',
    data() {
        return {
          data_content:[],
          seen:false,
          x:0,
          y:0,
          positionStyle:{top:'20px',left:'20px'},
        };
    },
    methods: {
      enter(item){
        this.seen = true;
      },
      leave:function(){
        this.seen = false;
      },
      updateXY:function(event){
        this.x=event.pageX;
        this.y=event.pageY;
        this.positionStyle={top: this.y-164 + 'px',left: this.x-374 + 'px'};
      },
    }
}


export default {
    name: 'netImage',
    data() {
        return {
          data_content:[],
          seen:false,
          x:0,
          y:0,
          positionStyle:{top:'20px',left:'20px'},
        };
    },
    methods: {
      enter(item){
        this.seen = true;
      },
      leave:function(){
        this.seen = false;
      },
      updateXY:function(event){
        this.x=event.pageX;
        this.y=event.pageY;
        this.positionStyle={top: this.y-164 + 'px',left: this.x-374 + 'px'};
      },
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值