我已經設置了這段代碼,以便與我爲WordPress構建的短代碼/插件一起工作......所有事情都最終與響應式(這是第三個jQuery修訂版) m有一個問題:懸停在工具提示上。響應式工具提示與工具提示懸停
我需要能夠鼠標進入工具提示,並保持可見。如果出現以下情況,我需要工具提示消失:
a。工具提示被剔除,或者...... b。目標被挖出
jQuery不是我的強大套件,我只能得到一個或另一個發生。
HTML:
<div class="mbt-hover" style="width:100px; height:auto;">
<p>Test Text</p>
<div class="mbt-tooltip" style="width:200px; height:auto;">
<p>Test pop-up <a title="About" href="http://www.mindblowingthings.dev/about/">content</a>
<ul>
<li>this</li>
<li>is</li>
<li>a list</li>
</ul>
</div>
</div>
CSS:
#tooltip {
text-align: center;
color: #fff;
background: #111;
position: absolute;
z-index: 100;
padding: 15px;
}
#tooltip:after {
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid #111;
content: '';
position: absolute;
left: 50%;
bottom: -10px;
margin-left: -10px;
}
#tooltip.top:after {
border-top-color: transparent;
border-bottom: 10px solid #111;
top: -20px;
bottom: auto;
}
#tooltip.left:after {
left: 10px;
margin: 0;
}
#tooltip.right:after {
right: 10px;
left: auto;
margin: 0;
}
.mbt-tooltip {
display: none;
width: auto;
max-width: 100% !important;
}
JQUERY
$(function() {
var targets = $('.mbt-hover'),
target = false,
tooltip = $('.mbt-tooltip'),
title = false;
targets.bind('mouseenter', function()
{
target = $(this);
tip = target.children('.mbt-tooltip');
tooltip = $('<div id="tooltip"></div>');
if(!tip || tip == '')
return false;
//target.remove('.mbt-tooltip');
//target.removeAttr('title');
tooltip.css('opacity', 0)
.html(tip.clone().show())
.appendTo('body');
var init_tooltip = function()
{
if($(window).width() < tooltip.outerWidth() * 1.5)
tooltip.css('max-width', $(window).width()/2);
else
tooltip.css('max-width', 340);
var pos_left = target.offset().left + (target.outerWidth()/2) - (tooltip.outerWidth()/2),
pos_top = target.offset().top - tooltip.outerHeight() - 20;
if(pos_left < 0)
{
pos_left = target.offset().left + target.outerWidth()/2 - 20;
tooltip.addClass('left');
}
else
tooltip.removeClass('left');
if(pos_left + tooltip.outerWidth() > $(window).width())
{
pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth()/2 + 20;
tooltip.addClass('right');
}
else
tooltip.removeClass('right');
if(pos_top < 0)
{
var pos_top = target.offset().top + target.outerHeight();
tooltip.addClass('top');
}
else
tooltip.removeClass('top');
tooltip.css({ left: pos_left, top: pos_top })
.animate({ top: '+=10', opacity: 1 }, 50);
};
init_tooltip();
$(window).resize(init_tooltip);
var remove_tooltip = function()
{
tooltip.animate({ top: '-=10', opacity: 0 }, 300, function()
{
$(this).remove();
});
target.children('.mbt-tooltip', tip);
};
//**** ISSUE AREA ****//
target.bind('mouseleave', remove_tooltip);
tooltip.bind('click', remove_tooltip);
});
});
FIDDLE: http://jsfiddle.net/RevConcept/L8bho8yu/
'提示= $('
');' - 這是什麼?你的意思是'tooltip = $('#tooltip');'? – ray9209 2014-10-31 01:15:42不,這是正確的 - 它創建一個ID爲#tooltip的新div。 – RevConcept 2014-12-18 17:47:58
http://stackoverflow.com/questions/36275678/how-to-create-a-tooltip – 2017-02-23 05:40:34