Ovládání komentářů ve stylu WordPress pomocí MooTools nebo jQuery

WordPress má pěkný malý efekt na Admin Dashboard, kde zobrazuje a skrývá odkazy na ovládání komentářů, když najedete myší a myší z kontejneru záznamu. Zde je návod, jak tohoto efektu dosáhnout pomocí MooTools nebo jQuery.

Zobrazit ukázku

XHTML

<!-- more records above -->
<div class="record">
	<p>
		<strong>Comment Person 2</strong><br />
		Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
	</p>
	<div class="record-controls">
		<a href="#" class="unapprove">Unapprove</a> |
		<a href="#">Edit</a> |
		<a href="#">Reply</a> |
		<a href="#">Spam</a> |
		<a href="#" class="delete">Delete</a>
	</div>
</div>
<div class="record">
	<p>
		<strong>Comment Person 3</strong><br />
		Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
	</p>
	<div class="record-controls">
		<a href="#" class="unapprove">Unapprove</a> |
		<a href="#">Edit</a> |
		<a href="#">Reply</a> |
		<a href="#">Spam</a> |
		<a href="#" class="delete">Delete</a>
	</div>
</div>
<!-- more records below -->

Všimněte si, že odkazy umísťujeme na stránku a NEVKLÁDÁME je pomocí MooTools nebo jQuery. Proč? Takže pokud uživatel nemá povolený JavaScript, může stále vidět odkazy.

CSS

.record				{ width:700px; border:1px solid #ccc; padding:15px; margin:0 0 15px 0; }
.record:hover		{ background:#eee; }
.record-controls	{ font-size:10px; }
.unapprove			{ color:#d98500; }
.delete				{ color:#bc0b0b; }

Výše uvedený CSS můžete upravit libovolným způsobem.

JavaScript MooTools

/* when the dom is ready... */
window.addEvent('domready',function() {
	/* hide all controls right away */
	$$('div.record-controls').setStyle('visibility','hidden');
	/* add events for show/hide */
	$$('div.record').each(function(rec) {
		var controls = rec.getFirst('div.record-controls');
		rec.addEvents({
			mouseenter: function() { controls.fade('in') },
			mouseleave: function() { controls.fade('out') }
		});
	});
});

Jakmile je DOM připraven, skryjeme všechny ovládací prvky a nasměrujeme MooTools, aby zobrazily a skryly ovládací prvky záznamu při událostech přejetí myší a přejetí myší.

JavaScript jQuery

/* when the dom is ready... */
$(document).ready(function(){
	/* hide all controls right away */
	$('div.record-controls').css('visibility','hidden');
	/* add events for show/hide */
	$('div.record').each(function() {
		var controls = $(this).children('div.record-controls');
		$(this).hover(
			function() { $(controls).css('visibility','visible') },
			function() { $(controls).css('visibility','hidden') }
		);
	});
});

Výše uvedené dosahuje podobného efektu pomocí jQuery.

Zobrazit ukázku

Rád tyto odkazy ve výchozím nastavení skrývám, protože barvy odkazů mohou rušit pozornost. Co si o tom myslíte?