项目中产品提了一个这样的需求(鼠标悬浮标签之上展示标签信息),老大一直问能不能实现?其实很简单!他不确定的点是在他写的位置不对,还有取的定位值不对,因为如果是说单纯从树节点自定义滑入滑出显示定位标签的话当列表内容过多出现滚动条的时候会导致标签内容被遮住!那这个时候我们就可以考虑除了子元素相对定位之外还有什么方法可以获取到当前位置进行内容跟随显示,那就是我们的鼠标位置信息。可以通过获取鼠标位置信息,设置标签信息模块在外层,通过获取鼠标距离X轴Y轴的位置进行固定定位!一下代码实现

export default {

data() {

return {

show: false,

x: "", //跟随鼠标光标x轴位置

y: "", //跟随鼠标光标Y轴位置

tegInfo: {}

};

},

methods: {

// 树节点鼠标移入

mouseenter(event, data) {

if (data.tagExplain === 1) {

this.show = true;

this.tagInfo = data;

//获取鼠标光标位置

let e = event || window.event;

let scrollX =

document.documentElement.scrollLeft || document.body.scrollLeft;

let scrollY =

document.documentElement.scrollTop || document.body.scrollTop;

this.x = e.pageX || clientX + scrollX;

this.y = e.pageY || clientY + scrollY;

}else{

return;

}

},

// 树节点鼠标移出

mouseleave(node, data) {

this.show = false;

},

},

mounted() {

this.$nextTick(() => {

this.handleCheckChange();

});

}

};

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: