У меня есть большое изображение, на котором при наведении курсора отображается серия кнопок (например, «Поделиться в Facebook», «Галерея», «Электронная почта» и т. Д.).Кнопки сохраняются как ul
и позиционируются абсолютно, когда изображение наведено.Вот разметка для этого:
<a href="#" title="Click for next image" class="share_buttons">
<img src="" id="largeimage" height="410" width="600" class="share_buttons" />
</a>
<ul id="share_buttons">
<li><a href="#" title="Share on Facebook" class="facebook"><div class="icon"></div>Facebook</a></li>
<li><a href="#" title="Link to this Page" class="link"><div class="icon"></div>Link</a></li>
<li><a href="#" title="Contact this venue" class="mail"><div class="icon"></div>E-mail</a></li>
<li>
<a href="#" title="View the venue's Gallery" rel="lightbox" class="gallery">
<div class="icon"></div>
Gallery
</a>
</li>
</ul>
Вот jQuery, который я собрал для этого.Как вы увидите, я включил переменную, чтобы определить, находится ли пользовательская мышь в кнопках общего доступа, и чтобы она не исчезала, если есть, но, похоже, это не работает:
var inshared = false;
$('ul#share_buttons li a').mouseover(function() { inshared = true; });
$('ul#share_buttons li a').mouseout(function() { inshared = false; });
// When they hover a share image, fade in the share items:
$('a.share_buttons img').mouseenter(function() {
var leftpos = ($(this).width() + $(this).offset().left) - $('ul#share_buttons').outerWidth(true);
var toppos = $(this).offset().top + ($('ul#share_buttons').outerHeight(true) * 0.3);
$('ul#share_buttons').css({ left: leftpos, top: toppos });
$('ul#share_buttons').fadeIn();
}).mouseleave(function() {
$('ul#share_buttons').fadeOut();
});
К сожалению, поскольку ul
не является потомком элемента изображения, всякий раз, когда пользователь помещает свою мышь на кнопки, событие mouseout
запускается на изображении, и поэтому кнопки исчезают.Мой вопрос заключается в том, чтобы определить, находится ли позиция курсора в пределах координат элемента img
, есть ли способ предотвратить это действие?