您的位置:首页 > Web前端 > JQuery

mTips思维导图插件使用异常:给元素添加提示不现实

2018-04-12 00:00 507 查看
摘要: 一个简单的小问题,但是可能会给你节省很多时间~

最近在写前端代码时用到一个很好用的提示框插件mTips

遇到一个问题就是用下面addTipTopLeft方法给一个节点添加提示,提示显示不出来(有时会闪现提示)。但是同样的方法给其它元素添加提示就会显示出来。

//屏幕左上角的提示
function addTipTopLeft(node, tip, color) {
var el = 'jmnode[nodeid=' + node + ']';
$(el).on('mouseenter', function (e) {
mTips.c.x = -e.pageY + 20;
mTips.c.y = -e.pageX + 30;

//显示提示
mTips.s(tip, color);
});

$(el).on('mouseleave', function (e) {
mTips.h();
mTips.c.x = 10;
mTips.c.y = 10;
});
}

经过一番琢磨后发现,原来是的提示内容太多了,模态框把鼠标悬停的元素遮住,这样鼠标焦点不在目标元素上,自然就无法显示提示了,于是我增加了一个方法,把提示改为右上角显示,这样就提示框就不会覆盖到目标元素,问题也成功解决了。

//屏幕右上的提示
function addTipTopRight(node, tip, color) {
var el = 'jmnode[nodeid=' + node + ']';
$(el).on('mouseenter', function (e) {
//屏幕宽
var screenWidth = document.body.clientWidth;
//屏幕高
var screenHeight = document.body.clientHeight;
mTips.c.x = -e.pageY + screenHeight/2;
mTips.c.y = -e.pageX + screenWidth/2;

//显示提示
mTips.s(tip, color);
});

$(el).on('mouseleave', function (e) {
mTips.h();
mTips.c.x = 10;
mTips.c.y = 10;
});
}

果然代码没有玄学啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐