В сходна статия "Направа на динамичен бутон" чрез CSS разгледах начин как се постига sprite-изображение в графичен редактор Photoshop.
Позволете да повторим опита. За целта съм подготвил изображение, ползвайки ресурс от deviantart.com.
Постигаме CSS Бутон
Пишем макет.
Това е хиперлинк елемент а, заобиколен от елемент span с клас button. Прави впечатление, че няма име на атрибута. То умишлено е пропуснато, което ще спести свойство text-indent в CSS-файла.
html-код
<span class="button"><a href="#"></a></span>
Добавяме стил.
Изображението в случая е с размери 199px на 112px. Неговата половина по височина определя значението на селектор height, познато от предните статии. Що се касае упоменатия text-indent неговото значение в повечето случай е -9999рх. По този начин ще скрие надписа на бутона, който би трябвало да напишем на място на текст <a href="#"></a>текст</span>. Но CSS Trics съветват друго.
Накратко, надписът отива зад възможностите на монитора и посетителят не го вижда. На негово място стои фоново изображение, виждано от посетителя, докато ботовете спокойно индексират въпросния текст. По този начин се спомага SEO, но този начин е добре дошъл и за спамърите, и на свои ред Google реагира в обратна посока.
Следва познато позициониране в зависимост от положението на курсора върху бутона. И при псевдо-селектор hover, то е -56рх. Значение, равно половината на изображението. Съответно, не забравяйте да изчислите за вашия бъдещ бутон. До тук това е достатъчно за обикновен бутон с CSS.
css-код
.button { display:block; width:199px; height:56px; background:url(button.png) no-repeat 0 -56px; } .button a { display:block; width:199px; height:56px; background:url(button.png) no-repeat 0 0; } .button a:hover { background-position:0 -56px; }
Постигаме jQuery Бутон
Включваме библиотека jQuery. За целта между тагове <head> и </head> добавяме следния код
html код
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="javascript.js"></script>
Дойде ред и на jQuery, с чиято помощ ще постигнем анимация на нашия бутон - плавно преливане на картинката от горната част към долна и обратно, в зависимост от положението на курсора върху бутона. Нашия код ще бъде постигнат от .ready() method.
Първото нещо е да премахнем :hover стила, защото ще пречи на анимацията. Toва е описано от 1-ви до 3-ти ред в java-script кода. Няма място за притеснения, ако посетителя е изключил изпълнението на JavaScript в своя браузър. Бутонът ще бъде управляван от CSS.
Следва метод .hover(), който ще следи положението на курсора и според зададеното време (500) ще се изпълнява анимацията.
java-script код
$(document).ready(function(){ $('span.button a') .css({ 'backgroundPosition': '0 0' }) .hover( function(){ $(this).stop() .animate({ 'opacity': 0 }, 500); }, function(){ $(this).stop() .animate({ 'opacity': 1 }, 500); } ); });
Пълен код на бутона
пълен код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > <title>jQuery Анимиран Бутон</title> <style type="text/css"> .button { display:block; width:199px; height:56px; background:url(button.png) no-repeat 0 -56px; } .button a { display:block; width:199px; height:56px; background:url(button.png) no-repeat 0 0; } .button a:hover { background-position:0 -56px; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('span.button a') .css({ 'backgroundPosition': '0 0' }) .hover( function(){ $(this).stop() .animate({ 'opacity': 0 }, 500); }, function(){ $(this).stop() .animate({ 'opacity': 1 }, 500); } ); }); </script> </head> <body> <span class="button"><a href="#"></a></span> </body> </html>
Кодът е валидиран от The W3C Markup Validation Service.
Демо
CSS Бутон | jQuery Бутон |
0 Response to "Анимиран jQuery бутон"
Публикуване на коментар