Как использовать библиотеку всплывающих подсказок (qtip.js) вместе с cytoscape.js
Я хочу использовать qtip вместе с cytoscape.js для отображения всплывающих подсказок в узлах события mouseover в графе, созданном с помощью cytoscape.js. Я поместил следующий код в ready: function(), как показано ниже:
cy.on('mouseover','node',function (event) {
var eid = $(this).data('id');
$(this).qtip({
overwrite: false,
content: eid,
position: {
my: 'right center',
at: 'left center',
target: $(this)
},
show: {
event: event.type,
ready: true
},
hide: {
fixed: true
}
}, event);
});
Но нет подсказки, отображаемой в узле при наведении мыши. Пожалуйста, помогите мне.
2 ответа
Укажите правильную координату для qtip для взаимодействия с зависанием узла. Это можно сделать с помощью CyPosition. Надеюсь, это поможет:
cy.on('mousemove','node', function(event){
var target = event.cyTarget;
var sourceName = target.data("source");
var targetName = target.data("target");
var x=event.cyPosition.x;
var y=event.cyPosition.y;
$("#box").qtip({
content: {
title:targetName,
text: sourceName
},
show: {
delay: 0,
event: false,
ready: true,
effect:false
},
position: {
my: 'bottom center',
at: 'top center',
target: [x+3, y+3],
adjust: {
x: 7,
y:7
}
},
hide: {
fixed: true,
event: false,
inactive: 2000
},
style: {
classes: 'ui-tooltip-shadow ui-tooltip-youtube',
tip:
{
corner: true,
width: 24, // resize the caret
height: 24 // resize the caret
}
}
}
});
})
также вы не указываете цель события. И не забывайте использовать mousemove при работе с canvas.
Вот лучшее решение, которое я нашел сегодня. Просто включите этот код в готовую функцию, и, помимо функций qtip и css, включите https://github.com/cytoscape/cytoscape.js-qtip, он будет показывать подсказку при нажатии на узел или ребро
cy.elements().qtip({
content: function(){ return 'Example qTip on ele ' + this.id() },
position: {
my: 'top center',
at: 'bottom center'
},
style: {
classes: 'qtip-bootstrap',
tip: {
width: 16,
height: 8
}
}
});
// call on core
cy.qtip({
content: 'Example qTip on core bg',
position: {
my: 'top center',
at: 'bottom center'
},
show: {
cyBgOnly: true
},
style: {
classes: 'qtip-bootstrap',
tip: {
width: 16,
height: 8
}
}
});