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);
});
どうもありがとうございました!