我有一个连续的 HTML 元素列表。每个列表项都包含一个超链接内的图像,如下所示:
<ul class="products">
<li><a href="#" title="Title 1"><img src="image.jpg" /></a></li>
<li><a href="#" title="Title 2"><img src="image.jpg" /></a></li>
<li><a href="#" title="Title 3"><img src="image.jpg" /></a></li>
</ul>
当您将鼠标悬停在列表项上时,我基本上想使用 jQuery 淡入包含链接标题的工具提示。因此,当您将鼠标悬停在第一个列表项上时,DOM 将变为以下内容:
<ul class="products">
<li>
<div class="product-title-ribbon">Title 1</div>
<a href="#" title="Title 1"><img src="image.jpg" /></a>
</li>
<li><a href="#" title="Title 2"><img src="image.jpg" /></a></li>
<li><a href="#" title="Title 3"><img src="image.jpg" /></a></li>
</ul>
当您将鼠标移出时,工具提示需要淡出。它实际上最终会比标准工具提示更复杂,因此我不只是使用现成的解决方案;我试图让我的头脑了解机制,以便我能够理解它并适应前进。
无论如何,我有基本的工作,但它是丑陋的,因为当你在项目上鼠标时,工具提示会不断地淡入淡出。我在这里做了一个小提琴:http: //jsfiddle.net/YcuYY/。谁能提出一种改进方法,使工具提示更加精致而不会闪烁或排队?通过这种排序,我应该能够继续对其进行调整以适应最终需求。
var productRibbon = $('<div class="product-title-ribbon"></div>');
$('.products li').hover(function() {
var productTitle = $('a',this).attr('title');
productRibbon.text(productTitle);
$(this).prepend(productRibbon);
productRibbon.fadeIn(500);
},function () {
$(productRibbon,this).fadeOut(500);
});
非常感谢各位!