答案 0 :(得分:1)
<template>
<div>
<div class="hover" @mouseenter="mouseEnter" @mousemove="mousemove" @mouseleave="mouseLeave"></div>
<div class="popup" v-if="popup">
<slot></slot>
</div>
</div>
<script>
export default {
data() {
return {
popup: false
}
},
methods: {
mouseEnter(event) {
console.log('mouseneter');
this.popup = true;
this.$el.addEventListener('mousemove', this.mouseMove, false);
},
mouseLeave(event) {
this.popup = false;
// this.$el.removeEventListener('mousemove', this.mouseMove());
},
mouseMove(event) {
console.log(event.clientX, event.clientY);
}
}
}
答案 1 :(得分:0)
用户本机 mousemove 事件-
<div>
<div id="elementId" class="hover" @mouseenter="mouseEnter" @mousemove="mousemove" @mouseleave="mouseLeave"></div>
<div id="popup" class="popup" v-if="popup">
<slot></slot>
</div>
</div>
export default {
data() {
return {
popup: false
}
},
mounted:function(){
document.getElementById("elementId").addEventListener('mousemove', function(event){
console.log(event.screenX + '-' + event.screenY);
// change the position of popup here by changing top and left property -
document.getElementById('popup').style.top = event.screenY+'px';
document.getElementById('popup').style.left = event.screenX+'px';
});
},
methods: {
mouseEnter(event) {
console.log('mouseneter');
this.popup = true;
this.$el.addEventListener('mousemove', this.mouseMove, false);
},
mouseLeave(event) {
this.popup = false;
// this.$el.removeEventListener('mousemove', this.mouseMove());
},
mouseMove(event) {
console.log(event.clientX, event.clientY);
}
}
}