【Vue 交互优化-tooltip】tips 跟随鼠标光标

当某div或内容超出一屏时,用户需要查看信息,tips 只能在固定位置显示,用户体验感差 

一:安装 v-tooltip 

npm install v-tooltip@1.1.6    # 我使用的是该版本的

 二:使用

I. 全局引用
import Vue from 'vue'
import VTooltip from 'v-tooltip' 
Vue.use(VTooltip)
 II. HTML片段
<div 
    v-tooltip 
    tips="tips内容"
></div>
III.  JS片段
export default{
    // 自定义提示指令
    directives: {
        tooltip(el, binding){
            // 鼠标移入时,将浮沉元素插入到body中
            el.onmouseenter = function (e) {
                // 创建浮层元素并设置样式
                const vcTooltipDom = document.createElement("div");
                vcTooltipDom.style.cssText = `
                        position:absolute;
                        background: #fff;
                        border-radius: 4px;
                        border: 1px solid #ebeef5;
                        padding: 3px 5px;
                        z-index: 2000;
                        color: #606266;
                        text-align: justify;
                        font-size: 12px;
                        box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
                        word-break: break-all;
                        display: none;
                    `;
                // 设置id方便寻找
                vcTooltipDom.setAttribute("id", "vc-tooltip");
                // 将浮层插入到body中
                document.body.appendChild(vcTooltipDom);
                // 浮层中的文字 通过属性值传递动态的显示文案
                document.getElementById("vc-tooltip").innerHTML = el.getAttribute("tips");
            };
            // 鼠标移动时,动态修改浮沉的位置属性
            el.onmousemove = function (e) {
                const vcTooltipDom = document.getElementById("vc-tooltip");
                vcTooltipDom.style.top = e.clientY + 15 + "px";
                vcTooltipDom.style.left = e.clientX + 15 + "px";
                vcTooltipDom.style.display = "block";
            };
            // 鼠标移出时将浮层元素销毁
            el.onmouseleave = function () {
            // 找到浮层元素并移出
                const vcTooltipDom = document.getElementById("vc-tooltip");
                vcTooltipDom && document.body.removeChild(vcTooltipDom);
            };
        },
    },
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值