<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vivee - wordpress, webmastering, grafika i fotografia &#187; Skrypty client-side</title>
	<atom:link href="http://vivee.info/category/tutoriale/webmaster/skrypty-client-side/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivee.info</link>
	<description>Blog o wordpress, webmasteringu, grafice i fotografii.</description>
	<lastBuildDate>Sat, 01 Jan 2011 22:14:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>jQuery Cycle</title>
		<link>http://vivee.info/2011/01/01/jquery-cycle/</link>
		<comments>http://vivee.info/2011/01/01/jquery-cycle/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 22:14:10 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[cycle]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[slider]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2125</guid>
		<description><![CDATA[jQuery Cycle to jedna z wielu ogólnodostępnych wtyczek, która pozwala nam zastosować na naszej stronie obecnie najpopularniejszy element - slider. W porównaniu do innych gotowych rozwiązań pozwala nam dobrać wiele efektów przejścia obrazów - od tradycyjnego przenikania po bardziej złożone zmiany z wykorzystaniem zmiany położenia lub nawet wielkości zamieszczonych obrazków. Jeszcze jedną jego zaletą jest [...]]]></description>
			<content:encoded><![CDATA[<p><strong>jQuery Cycle</strong> to jedna z wielu ogólnodostępnych wtyczek, która pozwala nam zastosować na naszej stronie obecnie najpopularniejszy element - slider.<br />
W porównaniu do innych gotowych rozwiązań pozwala nam dobrać wiele efektów przejścia obrazów - od tradycyjnego przenikania po bardziej złożone zmiany z wykorzystaniem zmiany położenia lub nawet wielkości zamieszczonych obrazków.<br />
<span id="more-2125"></span><br />
Jeszcze jedną jego zaletą jest rozbudowana dokumentacja i ogromna ilość podanych przykładów wdrożenia.<br />
Oto strona oficjalna wtyczki: <a href="http://jquery.malsup.com/cycle/">jQuery Cycle Plugin</a></p>
<p class="insp">
<a class="button" href="http://pliki.vivee.info/users/agressiva/cycle/index.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a><a class="button" href="http://jquery.malsup.com/cycle/download.html"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/agressiva/cycle/jquerycycle.jpg" alt="jQuery Cycle"/>
</p>
<h2>Instalacja:</h2>
<p>Aby zainstalować ten plugin przede wszystkim musimy w sekcji <code><head></code> kodu zamieścić bibliotekę jQuery:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<p>A także główny skrypt jQuery Cycle:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.2.74.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<p>Podałam tutaj odnośniki zewnętrzne, ale oczywiście wtyczkę możecie pobrać ze strony autora: <a href="http://jquery.malsup.com/cycle/download.html">jQuery Cycle Plugin - Download</a></p>
<p>Ponadto należy zamieścić skrypt, w którym bardzo łatwy sposób określimy jaki efekt chcemy zastosować w swoim sliderze:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //zdefiniowany efekt<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><code>$('.slideshow')</code> - nazwa diva, w którym umieszczamy slider</p>
<h2>Struktura:</h2>
<p>Jako, że jest to slider do zdjęć, to jego struktura ogranicza się do diva głównego oraz samych obrazków:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;slideshow&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img1.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img2.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img3.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; &nbsp;<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span></div>
<h2>Efekty</h2>
<p>Przedstawię Wam kilka efektów jakie możemy uzyskać dzięki <strong>jQuery Cycle</strong><br />
Aby zastosować określony efekt należy w sekcji <head> zamieścić odpowiedni kod i ewentualnie dostosować go do indywidualnych potrzeb:</p>
<p><strong>1. Fade - czyli tradycyjne przenikanie:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/index.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: 'fade',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; speed: '2500',<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>2. Scrolldown - przewijanie z góry na dół:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/scrolldown.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: 'fade',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; speed: '2500',<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>3. Zoom:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/zoom.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
fx: &nbsp; &nbsp;'zoom', <br />
sync: &nbsp; 0, <br />
delay: -4000 <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>4. Shuffle - przekładanie się zdjęć:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/shuffle.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp;'shuffle', <br />
&nbsp; &nbsp; delay: -4000 <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>5. Scrollleft - przewijanie w lewo</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/scrollleft.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp; 'scrollLeft', <br />
&nbsp; &nbsp; timeout: 5000, <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>6. Multi - zastosowanie wielu efektów jednocześnie</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/multi.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp; 'scrollHorz,zoom,fadeZoom,slideX,turnUp,scrollHorz,toss,uncover,scrollDown,shuffle,wipe,fade', <br />
&nbsp; &nbsp; timeout: 5000, <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p>Te oraz inne efekty dokładnie opisane i zobrazowane znajdziecie na: <a href="http://jquery.malsup.com/cycle/begin.html"><strong>Beginner Demos</strong></a></p>
<p>Mam nadzieję, że ten prosty instruktarz okażę się pomocny.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2125&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2011%2F01%2F01%2Fjquery-cycle%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2011/01/01/jquery-cycle/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Jak za pomocą js poprawić wygląd formularzy</title>
		<link>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/</link>
		<comments>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 23:02:29 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[formularze]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[niceforms]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2036</guid>
		<description><![CDATA[Tworząc strony dość często trzeba powojować z formularzami. Niestety dość często się zdarza współpraca z grafikiem, który o htmlu to za dużo nie wie, a wizje formularzy ma dość... finezyjne (np. ostylowany button przy input type="file"). Wtedy możemy albo zacząć ostro kombinować (background, js, pełna przezroczstość... po prostu cuda) albo powiedzieć, że się nie da. [...]]]></description>
			<content:encoded><![CDATA[<p>Tworząc strony dość często trzeba powojować z formularzami. Niestety dość często się zdarza współpraca z grafikiem, który o htmlu to za dużo nie wie, a wizje formularzy ma dość... finezyjne (np. ostylowany button przy input type="file"). Wtedy możemy albo zacząć ostro kombinować (background, js, pełna przezroczstość... po prostu cuda) albo powiedzieć, że się nie da. Ostatecznie pozostaje nam użyć <strong>Niceforms</strong>, czyli skryptu, w którym autor ostro pokombinował za nas.<span id="more-2036"></span></p>
<p class="insp">
<a href="http://pliki.vivee.info/users/palmiak/niceforms/niceforms.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a>
</p>
<h2>Jak to działa?</h2>
<p>Dla usera - po prostu banalnie. Całość ogranicza się do dopisania linijki (załączenie skryptu) oraz dopisania <code>class="niceform"</code>. Dodatkowo jeżeli chcemy zmienić wygląd formatek należy zedytować pliczek psd załączony do archiwum i zapisać obrazki.</p>
<p>Pod maską już się dzieje o wiele więcej rzeczy. Najprościej mówiąc wszystko działa na zasadzie ukrycia pola formularza, utworzenia nowego obiektu, który służy głównie do wyglądania oraz przekazywania wartości wpisywanej/wyklikiwanej w nasz nowy twór do ukrytego już pola.</p>
<p>Taki niestety urok stylowania formularzy i stąd tak kombinacje.</p>
<h2>Prosty formularzyk</h2>
<p>Najpierw będziemy bazować na tym co otrzymujemy z Niceforms.</p>
<p>Nasz formularzyk będzie banalnym polem do wpisania jakiegoś słowa.</p>
<p>Po pierwsze pobieramy Niceforms ze strony autora: <a href="http://www.emblematiq.com/lab/niceforms/download/">www.emblematiq.com</a>.</p>
<p>W sekcji head dopisujemy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">language</span><span class="sy0">=</span><span class="st0">&quot;javascript&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;niceforms.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;link.html"><span class="kw2">&lt;link</span></span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;all&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;niceforms-default.css&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp;</div>
<p>Następnie w body piszemy już formularz właściwy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;form.html"><span class="kw2">&lt;form</span></span></a> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;niceform&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;fieldset&amp;gt;.html"><span class="kw2">&lt;fieldset&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;legend&amp;gt;.html"><span class="kw2">&lt;legend&gt;</span></span></a></span>Formularz do napisania czegoś<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/legend&amp;gt;.html"><span class="kw2">&lt;/legend&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;dl&amp;gt;.html"><span class="kw2">&lt;dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dt&gt;&lt;label <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;napisz_cos&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Napisz coś<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>label&gt;&lt;<span class="sy0">/</span>dt&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dd&gt;&lt;input <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;napisz_cos&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>dd&gt;</span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/dl&amp;gt;.html"><span class="kw2">&lt;/dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;dl&amp;gt;.html"><span class="kw2">&lt;dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dt&gt;&lt;input <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Wyślij&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>dt&gt;</span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/dl&amp;gt;.html"><span class="kw2">&lt;/dl&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/fieldset&amp;gt;.html"><span class="kw2">&lt;/fieldset&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/form&amp;gt;.html"><span class="kw2">&lt;/form&gt;</span></span></a></span><br />
&nbsp;</div>
<p>Najważniejsze jest to <code>class="niceform"</code>. I <a href="http://pliki.vivee.info/users/palmiak/niceforms/demo.html">tak oto wygląda</a> najprostsza wersja naszego formularza. </p>
<p>Załączone demo prezentujące wszystkie uroki Niceforms wygląda zaś <a href="http://pliki.vivee.info/users/palmiak/niceforms/niceforms.html">następująco</a>.</p>
<h2>A gdybyśmy chcieli zmienić grafikę?</h2>
<p>Potrzebować będziemy Photoshopa by otworzyć pliczek <strong>nf-standard-blue.psd</strong>. W nim zawarte są wszystkie grafiki związane z formularzem. Dodatkowo przygotowane są linie do cięcia, więc wystarczy wybrać zapisz dla web i zapisać same grafiki. Oczywiście można to zrobić po swojemu, tylko wtedy będzie troszkę więcej zabawy ze stylem. W sumie zabawy z PSem zostawiam Wam.</p>
<p>Opiszę teraz które klasy są używane do których elementów formularzy.</p>
<p><code>input type="text"</code> - NFText(robi za kontener w którym trzymane są kolejne elementy oraz to właśnie nim stylujemy tekst, który wpisujemy), NFTextCenter(odpowiada za rozciągającą się część tła - czyli środkową). NFTextLeft(odpowiada za lewą krawędź inputa), NFTextRight(odpowiada za prawą krawędź inputa)</p>
<p><code>input type="checkbox"</code> - NFCheck(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)</p>
<p><code>input type="radio"</code> - NFRadio(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)</p>
<p><code>input type="button"</code> - NFButton(środkowa część przycisku, rozszerzająca się w zależności od ilości tekstu), NFButtonLeft(lewa krawędź przycisku), NFButtonRight(prawa krawędź przycisku)</p>
<p><code>input type="file"</code> - NFFileButton(fragment udający guzik w file), NFFileNew(nowy input który udaje funkcjonalność lewej części file) dodadkowo wykorzystywane są tutaj NFText oraz NFTextLeft</p>
<p><code>textarea</code> - NFTextarea(tu wklepujemy zawartość), NFTextareaTop, NFTextareaBottom, NFTextareaTopLeft, NFTextareaTopRight, NFTextareaBottomLeft, NFTextareaBottomRight(poszczególne krawędzie pola), NFTextareaTopH, NFTextareaBottomH, NFTextareaTopLeftH, NFTextareaTopRightH, NFTextareaBottomLeftH, NFTextareaBottomRightH(poszczególne krawędzie po najeździe)</p>
<p><code>select</code> - NFSelect(kontener dla kolejnych elementów), NFSelectLeft(lewa część selecta - warto się przyjrzeć obrazkom, że zrozumieć jak to jest konstruowane), NFSelectRight(prawa część selecta), NFSelectOptions(czyli to co się pojawia po pliknięciu w selecta - tak naprawdę jest to ul)</p>
<p><code>select multiple="multiple"</code> - w sumie jest to prawie to co textarea, tylko nazwy zamiast NFTextarea mają na początku NFMultiSelect</p>
<p>Poza tymi klasami mamy kilka dodatkowych, których w większości przypadków ruszać nie należy:<br />
NFfocused - są nadawane elementom na których obecnie jest focus<br />
NFh - przesuwa tło by nadać mu pozycję 0 100% (używane w większości formatek)<br />
NFhr - przesuwa tło by nadać mu pozycję 100% 100% (używane przy select)<br />
NFhidden - ukrywa elementy, ale w taki sposób, że dalej są one funkcjonale (poprzez nadanie pełnej przezroczystości)</p>
<p>Mając opis klas, psd oraz gotowy wzór pozostaje tylko troszkę cierpliwości i powinno się udać. </p>
<p>Jeżeli nie będziecie zmieniać rozmiarów podmiana obrazków będzie bardzo szybkim procesem. W przeciwnym razie będzie trzeba troszkę podrasować arkusz stylu.</p>
<h2>Podsumowanie</h2>
<p>Jak widzicie stworzenie wymarzonych formularzy dzięki Niceforms jest w sumie prostym i w miarę przyjemnym procesem. Szkoda, że do osiągnięcia takich efektów potrzebne jest sporo tricków dziejących się pod maską. Pozostaję nam więc starać się edukować grafików ze szczególnie ułańską fantazją, żeby akurat przy formularzach troszkę odpuścili.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2036&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F06%2F03%2Fjak-za-pomoca-js-poprawic-wyglad-formularzy%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Budujemy stronę internetową przewijaną w poziomie!</title>
		<link>http://vivee.info/2010/01/12/budujemy-strone-internetowa-przewijana-w-poziomie/</link>
		<comments>http://vivee.info/2010/01/12/budujemy-strone-internetowa-przewijana-w-poziomie/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 21:51:22 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[horizontal scrolling website]]></category>
		<category><![CDATA[horizontal website]]></category>
		<category><![CDATA[projektowanie stron www]]></category>
		<category><![CDATA[strona pozioma]]></category>
		<category><![CDATA[strony www]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1402</guid>
		<description><![CDATA[Przeglądając w ostatnim czasie kilka serwisów o tematyce projektowania stron www natknęłam się na ranking najciekawszych projektów stron www przewijanych w poziomie. Strony takie stały się w ostatnim czasie bardzo popularne. Najczęściej służą jako portfolio graficzne, fotograficzne. Mimo swojej ograniczonej struktury dają nam całkiem spore pole do popisu. Wszystko zależy od naszej wyobraźni graficznej. Przedstawię [...]]]></description>
			<content:encoded><![CDATA[<p>Przeglądając w ostatnim czasie kilka serwisów o tematyce projektowania stron www natknęłam się na ranking najciekawszych projektów <strong>stron www przewijanych w poziomie</strong>.<br />
Strony takie stały się w ostatnim czasie bardzo popularne. Najczęściej służą jako portfolio graficzne, fotograficzne. Mimo swojej ograniczonej struktury dają nam całkiem spore pole do popisu. Wszystko zależy od naszej wyobraźni graficznej.<br />
Przedstawię Wam jedną z technik projektowania takich stron...<br />
<span id="more-1402"></span></p>
<p class="insp">
<a class="button" href="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a>
</p>
<h2>HTML</h2>
<p>Stronka, którą przygotowałam w celu zademonstrowania Wam tej techniki ma bardzo prostą konstrukcję HTML. Najważniejsze <code>divy</code> to te oznaczone klasą <code>box</code>. To właśnie one ustawione są na naszej stronie jeden za drugim, narzuconą mają określoną szerokość oraz margin z prawej strony aby zachować między nimi odpowiednią odległość.  </p>
<p>Ogólna struktura przedstawia się następująco:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span></p>
<p><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h1.html"><span class="kw2">&lt;h1</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;title&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Horizontal Scrolling Website <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;span&amp;gt;.html"><span class="kw2">&lt;span&gt;</span></span></a></span>tutorial od <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;a.html"><span class="kw2">&lt;a</span></span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>vivee.info<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>span&gt;&lt;<span class="sy0">/</span>h1&gt;</span><br />
&nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;menu&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#o_mnie&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>o mnie<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#oferta&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>oferta<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#webdesign&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>webdesign<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#fotografia&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>fotografia<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#linki&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>linki<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#kontakt&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>kontakt<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;end&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;content&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;o_mnie&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>O mnie<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;oferta&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Oferta<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;webdesign&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Webdesign<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;fotografia&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Fotografia<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;linki&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Linki<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;kontakt&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Kontakt<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;end&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp;</div>
<p>To co zamieścimy w divach <code>box</code> zależy tylko i wyłącznie od nas. Jak widać ze wersji demo ja postanowiłam podzielić stronkę na kilka działów, ale nie koniecznie trzeba tak robić. </p>
<h2>CSS</h2>
<p>Najważniejszą kwestią w stylowaniu naszej poziomej strony jest nadanie <code>&lt;body&gt;</code> odpowiedniej szerokości (takiej, w której zmieści się cała zawartość strony) - niestety jest to technika "na sztywno", ale połączeniu z wyfloatowanymi divami o klasie <code>box</code> sprawia, że wszystko układa się w płaszczyźnie horyzontalnej.<br />
W naszym przypadku <code>&lt;body&gt;</code> ma nadaną szerokość 5650px. </p>
<p>Oto wszystkie najbardziej kluczowe elementy w CSS:</p>
<div class="css dean_ch" style="white-space: nowrap;">
body <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="re2">:url</span><span class="br0">&#40;</span>flightplan-l-<span class="nu0">1920</span><span class="re1">.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw2">fixed</span> &nbsp;<span class="kw2">center</span> <span class="kw2">center</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">5650px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-family</span><span class="re2">:Georgia</span>, <span class="st0">&quot;Times New Roman&quot;</span>, Times, <span class="kw2">serif</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#page</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="re2">:left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">10px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:<span class="re3">0px</span></span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:relative</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>h1<span class="re0">#title</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">46px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#FFF</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">20px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="re2">:<span class="re3">100px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">800px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:fixed</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>h1<span class="re0">#title</span> span <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">15px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="re3">525px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">line-height</span><span class="re2">:<span class="re3">8px</span></span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p>h1<span class="re0">#title</span> span a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#e3e0d5</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>h1<span class="re0">#title</span> span a<span class="re2">:hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#eceae1</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="re2">:<span class="re3">32px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:<span class="re3">80px</span></span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="re3">15px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:fixed</span><span class="sy0">;</span> <br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style-type</span><span class="re2">:none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> ul li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:inline</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> ul li a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="re3">5px</span> <span class="nu0">0</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">6px</span></span> <span class="re3">4px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="re2">:left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#afa991</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#3c3a30</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-right</span><span class="re2">:<span class="re3">3px</span></span> <span class="kw2">solid</span> <span class="re0">#817b61</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="re2">:<span class="re3">3px</span></span> <span class="kw2">solid</span> <span class="re0">#817b61</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> ul li a<span class="re2">:hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#e3e0d5</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-right</span><span class="re2">:<span class="re3">3px</span></span> <span class="kw2">solid</span> <span class="re0">#8c8772</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="re2">:<span class="re3">3px</span></span> <span class="kw2">solid</span> <span class="re0">#8c8772</span><span class="sy0">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#content</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:<span class="re3">130px</span></span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="re3">15px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re1">.box</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">800px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">15px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="re2">:left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">line-height</span><span class="re2">:<span class="re3">19px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-align</span><span class="re2">:justify</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="re2">:url</span><span class="br0">&#40;</span>tlo<span class="re1">.png</span><span class="br0">&#41;</span> <span class="kw2">repeat</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="kw2">auto</span> !important<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">min-height</span><span class="sy0">:</span> <span class="re3">300px</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">300px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="re3">40px</span> <span class="nu0">0</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -moz-border-radius<span class="re2">:<span class="re3">5px</span></span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; -webkit-border-radius<span class="re2">:<span class="re3">5px</span></span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; border-radius<span class="re2">:<span class="re3">5px</span></span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Pozostałe ostylowane elementy htmla można podejrzeć w pliku <a href="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/style.css">style.css</a>.</p>
<h2>Przewiń do... czyli zastosowanie Horizontal Tiny Scrolling</h2>
<p>Dla ułatwienia przewijania naszej strony zastosowałam skrypt <a href="http://lab.centralscrutinizer.it/the-tiny-scrollings/"><strong>Horizontal Tiny Scrolling</strong></a>. Pozwala on automatycznie przewinąć stronę do boxa dzięki kliknięciu w odpowiedni link w menu.<br />
Jak to działa?<br />
Cały plugin składa się tylko z jednego pliku <a href="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/thw.js">thw.js</a> i nie wymaga żadnej konfiguracji z naszej strony.<br />
Jedyną sprawą o jakiej musimy pamiętać to forma linków w menu oraz id divów do których te linki będą nas kierować. Należy pamiętać, że w <code>href=""</code> oraz w <code>id=""</code> diva do które będzie kierować musi znaleźć się taka sama wartość. Na przykładzie niżej jest to <strong>#oferta</strong>.<br />
Przykład:<br />
Tak wygląda link w menu </p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#oferta&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>oferta<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp;</div>
<p>Div do którego będzie nas przenosił:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;box&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;oferta&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;h2&amp;gt;.html"><span class="kw2">&lt;h2&gt;</span></span></a></span>Oferta<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/h2&amp;gt;.html"><span class="kw2">&lt;/h2&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span> &nbsp; <br />
&nbsp;</div>
<p>Jest to cała filozofia korzystania z <strong>Tiny Scrolling</strong>, ponadto skrypt ten zapewnia bezproblemowe przewijanie strony za pomocą scrolla w myszy komputerowej.</p>
<h2>Na koniec... trochę inspiracji</h2>
<p class="insp">
<a href="http://www.ifekt.net/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/01.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://www.graphic-evidence.co.uk/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/02.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://www.hasrimy.com/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/03.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://www.thehorizontalway.com/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/04.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://deanoakley.com/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/05.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://frontenddesignconference.com/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/06.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://vanityclaire.com/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/07.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://www.ericj.se/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/08.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://www.charliegentle.co.uk/"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/09.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a>
</p>
<p class="insp">
<a href="http://ladio.ru/flash/en/index.html"><img src="http://pliki.vivee.info/users/agressiva/horizontal_scrolling/www/10.jpg" alt="Budujemy stronę internetową przewijaną w poziomie!" /></a></p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1402&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F01%2F12%2Fbudujemy-strone-internetowa-przewijana-w-poziomie%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/01/12/budujemy-strone-internetowa-przewijana-w-poziomie/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Pojawiająca się belka za pomocą jQuery</title>
		<link>http://vivee.info/2009/12/28/pojawiajaca-sie-belka-za-pomoca-jquery/</link>
		<comments>http://vivee.info/2009/12/28/pojawiajaca-sie-belka-za-pomoca-jquery/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 16:58:57 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1418</guid>
		<description><![CDATA[Dziś pokażę Wam dość przydatny trick, który podpatrzyłem korzystając z Magento. Otóż gdy przeglądamy jakieś długie strony i zjedziemy na tyle nisko, że znika nam z oczu górne menu pojawia się belka z kilkoma najważniejszymi opcjami. Było to na tyle przydatne, że na początku nawet nie zwróciłem uwagi na tą belkę - po prostu zawsze [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś pokażę Wam dość przydatny trick, który podpatrzyłem korzystając z Magento. Otóż gdy przeglądamy jakieś długie strony i zjedziemy na tyle nisko, że znika nam z oczu górne menu pojawia się belka z kilkoma najważniejszymi opcjami.<span id="more-1418"></span></p>
<p class="insp">
<a class="button" href="http://pliki.vivee.info/belka_jquery/tutek2.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a><a class="button" href="http://pliki.vivee.info/belka_jquery/tut.zip"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<p>Było to na tyle przydatne, że na początku nawet nie zwróciłem uwagi na tą belkę - po prostu zawsze była tam kiedy jej potrzebowałem. </p>
<p>To, że zostało to użyte w panelu administracyjnymi wcale nie znaczy, że nie znajdzie to użycia na normalnych stronach. Mozna przecież na tej belce umieścić dowolne informacje takie jak np. możliwość przypomnienia użytkownikowi, że jeśli podoba mu się ta strona niech zasubskrybuje rss lub uproszczone menu strony.</p>
<h2>xhtml i css</h2>
<p>Do naszego przykładu użyjemy <a href="http://pliki.vivee.info/belka_jquery/tutek1.html">następującej strony</a>. Jak widać jest to prostu tabelka oraz guzik 'dodaj produkt'. Dopiszemy do niej naszą belkę na której będzie zawsze można zobaczyć przycisk 'dodaj produkt':</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;menu&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;wrap&quot;</span>&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;&lt;img <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;dodaj.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span></div>
<p>Oczywiście u każdego może to wyglądać troszkę inaczej. Ostylujmy to teraz:</p>
<div class="css dean_ch" style="white-space: nowrap;"><span class="re0">#menu</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:100</span>%<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#ffef87</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:fixed</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">top</span><span class="re2">:0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#menu</span> <span class="re1">.wrap</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-align</span><span class="re2">:right</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Najważniejsze w tym jest tak naprawdę <code>display:none</code>, które ukrywa belkę (w czasie stylowanie warto to sobie wykomentować) oraz <code>position:fixed; top:0;</code> które spowodują, że belka zawsze będzie przyklejona do górnej krawędzi ekranu (nie działa to w IE6, jednak dość łatwo to można ominąć, np. <a href="http://snipplr.com/view/2952/ie6-fixed-position-fix/">tutaj</a>).</p>
<h2>Nasz właściwy skrypt</h2>
<p>Skrypt musi robić dwie rzeczy:
<ul>
<li>sprawdzać ile pikseli jesteśmy od górnej krawędzi strony</li>
<li>na podstawie tego wyniku pokazać lub ukryć belkę</li>
</ul>
<p>Napiszmy więc sobie funkcyjkę</p>
<div class="javascript dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> show_bar<span class="br0">&#40;</span>identyfikator, wielkosc<span class="br0">&#41;</span><span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> scroll_size = $<span class="br0">&#40;</span>window<span class="br0">&#41;</span>.scrollTop<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>window<span class="br0">&#41;</span>.scroll<span class="br0">&#40;</span><span class="kw2">function</span> <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scroll_size = $<span class="br0">&#40;</span>window<span class="br0">&#41;</span>.scrollTop<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>scroll_size<span class="sy0">&gt;</span>wielkosc<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>identyfikator<span class="br0">&#41;</span>.fadeIn<span class="br0">&#40;</span><span class="st0">'fast'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>identyfikator<span class="br0">&#41;</span>.fadeOut<span class="br0">&#40;</span><span class="st0">'fast'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
<p>Zmiennej <code>scroll_size</code> przypisujemy odległość od górnej krawędzi strony. </p>
<p>Następnie za każdy przesunięciem strony (<code>$(window).scroll()</code>) przeliczamy tą wielkość i sprawdzamy czy przekroczyła ona ustalony przez nas limit - jeżeli tak to pokaże nam belkę.</p>
<p>Teraz pozostaje to wywołać:</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> bar = show_bar<span class="br0">&#40;</span><span class="st0">&quot;#menu&quot;</span>, <span class="nu0">80</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Jako pierwszą wartość podajmy id elementu który ma się pokazywać. Drugi to wysokość od której ma się pokazywać.</p>
<p>Gdybyście mieli jakieś problemy zerknijcie na źródło dema.</p>
<h2>Podsumowanie</h2>
<p>I już. Uzyskaliśmy naprawdę miły i przydatny gadżecik za pomocą kilku linijek jQuery. </p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1418&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F12%2F28%2Fpojawiajaca-sie-belka-za-pomoca-jquery%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/12/28/pojawiajaca-sie-belka-za-pomoca-jquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>&#8220;Szybki podgląd&#8221; za pomocą jQuery</title>
		<link>http://vivee.info/2009/09/15/szybki-podglad-za-pomoca-jquery/</link>
		<comments>http://vivee.info/2009/09/15/szybki-podglad-za-pomoca-jquery/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 20:00:58 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1237</guid>
		<description><![CDATA[Jak już nie raz zdążyliśmy się przekonać JavaScript daje nam ogromne możliwości jeżeli chodzi o poszerzenie funkcjonalności naszych stron www oraz innych narzędzi webowych. Tym razem chcę Wam pokazać w jaki sposób zastosować bardzo przydatny plugin do szybkich podglądów obrazków oraz opisów w tekście (a także połączenie jednego z drugim). Na sam początek Podstawową czynnością [...]]]></description>
			<content:encoded><![CDATA[<p>Jak już nie raz zdążyliśmy się przekonać JavaScript daje nam ogromne możliwości jeżeli chodzi o poszerzenie funkcjonalności naszych stron www oraz innych narzędzi webowych.<br />
Tym razem chcę Wam pokazać w jaki sposób zastosować bardzo przydatny plugin do szybkich podglądów obrazków oraz opisów w tekście (a także połączenie jednego z drugim). <span id="more-1237"></span></p>
<p class="insp">
<a href="http://pliki.vivee.info/preview/"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a> <a href="http://pliki.vivee.info/preview/prev.zip"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<h2>Na sam początek</h2>
<p>Podstawową czynnością jeżeli chodzi o wykorzystywanie skryptów opartych o jQuery jest <a href=”http://docs.jquery.com/Downloading_jQuery”>pobranie samej biblioteki</a>.<br />
A następnie wklejenie do sekcji <code>head</code> kodu wywołującego tą bibliotekę.</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;jquery.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp;</div>
<p>Dla każdej funkcjonalności z osobna przygotowaliśmy pliki JS o indywidualnych nazwach, w tym celu aby nie myliły się nikomu z ich przeznaczeniem.<br />
<code>preview_img.js</code> - podgląd dla samych obrazków,<br />
<code>preview_text.js</code> - podgląd dla samego tekstu,<br />
<code>preview.js</code> - podgląd dla obrazków na linkach w treści. </p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;preview_img.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;preview_text.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;preview.js&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp;</div>
<h2>Podgląd zastosowany na obrazkach</h2>
<p><strong style="font-size:14px;">Galeria (obrazki bez opisu "title")</strong></p>
<p class="picture"><a href="http://pliki.vivee.info/preview/"><img src="http://pliki.vivee.info/preview/obr1.jpg" alt="Szybki podgląd za pomocą jQuery" /></a></p>
<p>W naszym przykładzie kod html wygląda następująco:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;a.html"><span class="kw2">&lt;a</span></span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;1.jpg&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;preview&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;1m.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;gallery thumbnail&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>a&gt;</span><br />
&nbsp;</div>
<p>W tym przypadku kiedy chcemy aby podgląd większego zdjęcia był na miniaturce należy koniecznie pamiętać o dodaniu klasy <code>preview</code> dla znacznika <code>a</code> oraz dodaniu w kodzie CSS odpowiednich dla tej klasy wartości:</p>
<div class="css dean_ch" style="white-space: nowrap;">
<span class="re0">#preview</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> <span class="re0">#ffffff</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#d0d0d1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">7px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#626262</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Szczególnie ważnymi pozycjami są <code>position:absolute;</code> oraz <code>display:none;</code> o których nie można zapomnieć. </p>
<p><strong style="font-size:14px;">Galeria (obrazki z opisem "title")</strong></p>
<p class="picture"><a href="http://pliki.vivee.info/preview/"><img src="http://pliki.vivee.info/preview/obr2.jpg" alt="Szybki podgląd za pomocą jQuery" /></a></p>
<p>Na tym przykładzie kod html odrobinę się różni od tego powyżej, pojawił się tutaj opis dużego zdjęcia w <code>title</code>, który podczas wyświetlenia podglądu będzie umieszczony pod obrazkiem:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;a.html"><span class="kw2">&lt;a</span></span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;1.jpg&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;preview&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;Duża wersja zdjęcia&quot;</span>&gt;&lt;img <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;1m.jpg&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;gallery thumbnail&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>a&gt;</span><br />
&nbsp;</div>
<p>Znaczniki <code>a</code> posiadają tutaj tą samą klasę co wyżej także, kod CSS wygląda identycznie. Przypisane zostały wartości dla koloru czcionki oraz jej wielkości i są one teraz dziedziczone przez tekst wyświetlany w <code>title</code>. </p>
<div class="css dean_ch" style="white-space: nowrap;">
<span class="re0">#preview</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> <span class="re0">#ffffff</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#d0d0d1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">7px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#626262</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<h2>Podgląd obrazka zastosowany w tekście</h2>
<p>Dla tych osób, którym zależy na zaoszczędzeniu miejsca na stronie istnieje także możliwość podpięcia podglądu obrazka na standardowym linku w treści. </p>
<p class="picture"><a href="http://pliki.vivee.info/preview/"><img src="http://pliki.vivee.info/preview/obr3.jpg" alt="Szybki podgląd za pomocą jQuery" /></a></p>
<p>Według własnych potrzeb można wstawić dla obrazka tytuł w <code>title</code> lub też nie.<br />
Kod html:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;p&amp;gt;.html"><span class="kw2">&lt;p&gt;</span></span></a></span>Jeżeli chcesz zobaczyć podgląd zdjęcia najedź na <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;a.html"><span class="kw2">&lt;a</span></span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;screenshot&quot;</span> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;1.jpg&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;Podgląd zdjęcia&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>ten link<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>p&gt;</span><br />
&nbsp;</div>
<p>W tym przypadku obrazek, który ma się pojawić po najechaniu na link jest przekazywany za pomocą <code>rel</code>, co jest dość istotne, bo daje nam to możliwość przypisania standardowego linka dla <code>a</code>.<br />
Podobnie jak wcześniej należy pamiętać o dodaniu odpowiedniej klasy dla znacznika <code>a</code>, tym razem nazywa się ona <code>screenshot</code>.<br />
CSS dla tej klasy:</p>
<div class="css dean_ch" style="white-space: nowrap;">
<span class="re0">#screenshot</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> <span class="re0">#ffffff</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#d0d0d1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">7px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#626262</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="re2">:<span class="re3">12px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Wszystkie pozycje w CSSie są dowolne do przypisania, najważniejsze jak zawsze jest pozycja <code>position:absolute;</code> i <code>display:none;</code> których nie można pominąć. </p>
<h2>Podgląd opisu linka zastosowany w tekście</h2>
<p>W tym przypadku po najeździe na link pojawi się jego opis zamieszczony w atrybucie <code>title</code> </p>
<p class="picture"><a href="http://pliki.vivee.info/preview/"><img src="http://pliki.vivee.info/preview/obr4.jpg" alt="Szybki podgląd za pomocą jQuery" /></a></p>
<p>Kod html:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;p&amp;gt;.html"><span class="kw2">&lt;p&gt;</span></span></a></span>Wróć do serwisu <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;a.html"><span class="kw2">&lt;a</span></span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;tooltip&quot;</span> <span class="kw3">title</span><span class="sy0">=</span><span class="st0">&quot;blog o webmasteringu, grafice i fotografii&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vivee.info<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>p&gt;</span><br />
&nbsp;</div>
<p>Tutaj pojawia się kolejna ważna klasa dla znacznika <code>a</code> -  <code>tooltip</code><br />
Tak samo jak we wcześniejszych przypadkach w kodzie CSS należy zamieścić <code>position:absolute;</code> i <code>display:none;</code>. </p>
<div class="css dean_ch" style="white-space: nowrap;">
<span class="re0">#screenshot</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="re2">:absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font</span><span class="re2">:<span class="re3">11px</span></span> <span class="st0">&quot;Trebuchet MS&quot;</span>, Arial, Helvetica, <span class="kw2">sans-serif</span>!important<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">8px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> <span class="re0">#d0d0d1</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#ffffff</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#333</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Wersje Demo do wszystkich prezentowanych podglądów dostępne są  na <a href="http://pliki.vivee.info/preview/">tej stronie</a>. </p>
<p>Mamy nadzieję, że narzędzie to okaże się dla wielu osób przydatne. <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1237&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F09%2F15%2Fszybki-podglad-za-pomoca-jquery%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/09/15/szybki-podglad-za-pomoca-jquery/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Menu akordeonowe z odrobiną CSS3</title>
		<link>http://vivee.info/2009/07/06/menu-akordeonowe-z-odrobina-css3/</link>
		<comments>http://vivee.info/2009/07/06/menu-akordeonowe-z-odrobina-css3/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 20:18:48 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[akordeon]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[menu akordeonowe]]></category>
		<category><![CDATA[menu rozwijane]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1044</guid>
		<description><![CDATA[W tym artykule dowiecie się w jaki sposób stworzyć menu akordeonowe, które funkcjonuje m.in. na stronie www.apple.com. Na tej samej zasadzie działa również moje portfolio, gdzie każda zakładka działa jak osobny dział na stronie (www.waterdesign.pl). Krok 1 - Struktura html naszej rozwijanej listy Całe menu akordeonowe oparte jest na liście zagnieżdżonej oraz divach, w których [...]]]></description>
			<content:encoded><![CDATA[<p>W tym artykule dowiecie się w jaki sposób stworzyć menu akordeonowe, które funkcjonuje m.in. na stronie <a href="http://www.apple.com/downloads/">www.apple.com</a>. Na tej samej zasadzie działa również moje portfolio, gdzie każda zakładka działa jak osobny dział na stronie (<a href="http://www.waterdesign.pl">www.waterdesign.pl</a>).<br />
<span id="more-1044"></span></p>
<p class="insp">
<a href="http://pliki.vivee.info/acordeon/"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a>
</p>
<h2>Krok 1 - Struktura html naszej rozwijanej listy</h2>
<p>Całe menu akordeonowe oparte jest na liście zagnieżdżonej oraz divach, w których zamieszczane są pozycje drugiego zagłębienia menu oraz ewentualna treść nie będąca listą. </p>
<p>Pojedyncza zakładka od strony htmlowej w naszym przykładzie wygląda następująco:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span></p>
<p><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link rss&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Subscribe RSS<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
<span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://pl.wikipedia.org/wiki/RSS&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>RSS - Wikipedia<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp;<span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info/2009/02/15/jak-wyizolowac-liczbe-subskrybentow-rss-korzystajac-z-feedburnera/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>RSS - korzystanie z feedburnera<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp;<span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://dobreprogramy.pl/index.php?dz=1&amp;t=95&amp;Czytniki+RSS&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Czytniki RSS<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; <br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span></p>
<p><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp;</div>
<p><strong>Wygląd:</strong></p>
<p class="picture"><a href="http://pliki.vivee.info/acordeon/1.jpg"><img src="http://pliki.vivee.info/acordeon/1m.jpg" alt="Full of colours" /></a></p>
<p>Pierwsza pozycja w menu (<code>li.kategoria</code>) jest zawsze widoczna. Elementem, który dzięki funkcji javascript będzie chowany, a po kliknieciu na <code>li.kategoria</code> będzie ukazywany jest <code>ul.fade</code>. </p>
<p>Całkowity kod html naszej pokazówki przestawia się tak jak widać to poniżej:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link rss&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Subscribe RSS<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://pl.wikipedia.org/wiki/RSS&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>RSS - Wikipedia<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info/2009/02/15/jak-wyizolowac-liczbe-subskrybentow-rss-korzystajac-z-feedburnera/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>RSS - korzystanie z feedburnera<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://dobreprogramy.pl/index.php?dz=1&amp;t=95&amp;Czytniki+RSS&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Czytniki RSS<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link facebook&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Facebook<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.facebook.com/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Facebook - Main Page<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.facebook.com/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Facebook - Rejestracja<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://www.facebook.com/pages/create.php&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Facebook - Stwórz swoją stronę<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link technorati&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Technorati<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://technorati.com/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Technorati - Main Page<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://technorati.com/technology/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Technorati - Technology<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://technorati.com/technology/it/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Technorati - IT<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link twitter&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Twitter<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://twitter.com/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Twitter - Main Page<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;https://twitter.com/signup&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Twitter - Join<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;https://twitter.com/viveeinfo&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vivee na Twitterze<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li.html"><span class="kw2">&lt;li</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;kategoria&quot;</span>&gt;&lt;div <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;naglowek&quot;</span>&gt;&lt;a <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;link vimeo&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vimeo<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul.html"><span class="kw2">&lt;ul</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;fade&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;li&amp;gt;.html"><span class="kw2">&lt;li&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;ul&amp;gt;.html"><span class="kw2">&lt;ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vimeo.com/&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vimeo - Main Page<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vimeo.com/join&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vimeo - Join<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;li&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vimeo.com/upload/video&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Vimeo - Upload<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>li&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/li&amp;gt;.html"><span class="kw2">&lt;/li&gt;</span></span></a></span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
<p><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/ul&amp;gt;.html"><span class="kw2">&lt;/ul&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp;</div>
<p>Niektóre dodatkowe klasy w htmlu zostały tutaj wprowadzone celowo w celu upiększeń poszczególnych zakładek pierwszego poziomu. Także na klasy typu <code>"twitter"</code>, <code>"vimeo"</code>, itp w swoich wersjach menu akordeonowego nie musicie zwracać uwagi (chyba, że tak jak tutaj chcecie aby każda zakładka miała inny kolor, ikonkę, itp).</p>
<h2>Upiększanie menu, czyli struktura CSS</h2>
<p>Jak łatwo jest się domyślić każdy kod CSS, który decydować będzie o wyglądzie może być inny. </p>
<div class="css dean_ch" style="white-space: nowrap;">
* <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
img <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
body <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#f4f3ef</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-align</span><span class="re2">:center</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="re0">#page</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">800px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-align</span><span class="re2">:left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="re0">#page</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style-type</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:100</span>%<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">20px</span></span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
ul ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="re2">:url</span><span class="br0">&#40;</span>img/tlo<span class="re1">.png</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:0</span>!important<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font</span><span class="re2">:<span class="re3">22px</span></span> <span class="st0">&quot;Trebuchet MS&quot;</span>, Tahoma, Arial, Helvetica, <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">word-spacing</span><span class="re2">:<span class="re3">3px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">vertical-align</span><span class="re2">:middle</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
div<span class="re1">.text</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">780px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">10px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">line-height</span><span class="re2">:<span class="re3">20px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-align</span><span class="re2">:justify</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font</span><span class="re2">:<span class="re3">11px</span></span> Tahoma, Arial, Helvetica, <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">letter-spacing</span><span class="re2">:<span class="re3">1px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#7a7a7a</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="re2">:url</span><span class="br0">&#40;</span><span class="kw2">text</span><span class="re1">.png</span><span class="br0">&#41;</span> <span class="kw2">repeat-x</span> <span class="kw1">top</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -moz-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -webkit-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
div<span class="re1">.text</span> p <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="nu0">0</span> <span class="re3">10px</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; </p>
<p>div<span class="re1">.text</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style-type</span><span class="re2">:none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>div<span class="re1">.text</span> ul li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font</span><span class="re2">:<span class="re3">12px</span></span> Helvetica, Tahoma, Arial, Geneva, <span class="kw2">sans-serif</span>!important<span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:<span class="re3">2px</span></span> <span class="nu0">0</span>!important<span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>div<span class="re1">.text</span> ul li a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#585858</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="re2">:none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>div<span class="re1">.text</span> ul li a<span class="re2">:hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#08a2b9</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="re1">.kategoria</span> a<span class="re1">.link</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="re2">:block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">780px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">22px</span></span> <span class="nu0">0</span> <span class="re3">5px</span> <span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font</span><span class="re2">:<span class="re3">22px</span></span> <span class="st0">&quot;Trebuchet MS&quot;</span>, Tahoma, Arial, Helvetica, <span class="kw2">sans-serif</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#fafafa</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="re2">:none</span><span class="sy0">;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:0</span> <span class="nu0">0</span> <span class="re3">2px</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -moz-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -webkit-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="re2">:<span class="re3">47px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-shadow</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="re3">1px</span> <span class="re3">1px</span> <span class="re0">#5d5d5d</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="re1">.kategoria</span> a<span class="re1">.link</span><span class="re2">:hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#ffffff</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="re2">:none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp;</div>
<p>Całkowita szerokość zakładek i zawartości, która się pojawia po kliknięciu na nie uzależiona jest od od diva w jakim się znajduje czyli od diva <code>#page</code>. Ma on nadaną konkretną szerokość i wyśrodkowany jest on względem okna przeglądarki.</p>
<h2>Odrobina CSS3</h2>
<p>CSS3 niestety na obecną chwilę nie jest jeszcze obsługiwany przez wszystkie przeglądarki internetowe. Te, które radzą sobie z nim całkiem sprawnie to:</p>
<ul>
<li>Firefox (od wersji 3 w górę)</li>
<li>Google Chrome</li>
<li>Safari</li>
<li>Opera (wersja 9.64 obsługuje zaledwie kilka możliwości jakie daje nam CSS3)</li>
</ul>
<p>W menu akordeonowym zostały wykorzystane takie efekty jak:<br />
1. <strong>Cień pod napisem</strong> </p>
<div class="css dean_ch" style="white-space: nowrap;">
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-shadow</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="re3">1px</span> <span class="re3">1px</span> <span class="re0">#5d5d5d</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp;</div>
<p>2. <strong>Zaokrąglone rogi</strong></p>
<div class="css dean_ch" style="white-space: nowrap;">
&nbsp; &nbsp; &nbsp; &nbsp; -moz-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; -webkit-border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; border-radius<span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span> &nbsp; &nbsp; <br />
&nbsp;</div>
<p class="picture"><a href="http://pliki.vivee.info/acordeon/2.jpg"><img src="http://pliki.vivee.info/acordeon/2m.jpg" alt="Full of colours" /></a></p>
<p>Efekt końcowy zabawy htmlowo-cssowej podejrzeć można w wersji <a href="http://pliki.vivee.info/acordeon/">Demo</a></p>
<h2> jQuery</h2>
<p>Do w pełni działajacych zakładek brakuje nam jeszcze podłączenie odpowiednich skryptów JS.<br />
W sekcji <code><head> </head></code> należy zamieścić odnośnik do jQuery:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://code.jquery.com/jquery-latest.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span> </div>
<p>oraz skrypt, z funkcją dzięki której zakładki zachowują się zgodnie z naszymi założeniami.</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;js/menu.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span> </div>
<p>Nasz skrypt, który decyduje o pojawianiu się i znikaniu zawartości wygląda następująco:</p>
<div class="javascript dean_ch" style="white-space: nowrap;">
&nbsp;$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;ul.fade&quot;</span><span class="br0">&#41;</span>.not<span class="br0">&#40;</span><span class="st0">&quot;:first&quot;</span><span class="br0">&#41;</span>.hide<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;a.link&quot;</span><span class="br0">&#41;</span>.click<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.fade:visible&quot;</span><span class="br0">&#41;</span>.hide<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.parent<span class="br0">&#40;</span><span class="br0">&#41;</span>.<a href="http://www.php.net/next"><span class="kw3">next</span></a><span class="br0">&#40;</span><span class="st0">'.fade'</span><span class="br0">&#41;</span>.fadeIn<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp;</div>
<p>gdzie:</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span><span class="st0">&quot;ul.fade).not(&quot;</span>:first<span class="st0">&quot;).hide();</span></div>
<p>Po wczytaniu skryptu ukrywa nam wszystkie podtreści zakładek poza pierwszą, która zawsze będzie pokazana i tym samym sugeruje userom, że kliknięcie w następną zakładkę pokaże się jej zawartość.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span><span class="st0">&quot;.fade:visible&quot;</span><span class="br0">&#41;</span>.hide<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
<p>Zagnieżdżone <code>ul</code> o klasie <code>.fade</code> będzie ukazywane po wcześniejszym kliknięciu na <code>a.link</code>.<br />
Nadanie klasy pojawiającemu się <code>ul</code> dodatkowo zabezpiecza nas przed sytuacją kiedy w treści mamy następne <code>ul</code> i nie chcemy aby one dziedziczyły to zachowanie. </p>
<p>Został również zastosowany efekt <code>fadeIn</code> dla pojawiających się zawartości menu. </p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.parent<span class="br0">&#40;</span><span class="br0">&#41;</span>.<a href="http://www.php.net/next"><span class="kw3">next</span></a><span class="br0">&#40;</span><span class="st0">'.fade'</span><span class="br0">&#41;</span>.fadeIn<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
<p>Więcej o fade'ach przeczytać możecie w artykule: <a href="http://vivee.info/2007/12/04/fadein-fadeout-fadeto-czyli-o-pojawianiu-sie-i-znikaniu/">"FadeIn, fadeOut, fadeTo – czyli o pojawianiu się i znikaniu"</a>.</p>
<p>Jeżeli chcemy aby zawartość pojawiała się nam po najeździe na zakładkę, a nie dopiero po kliknięciu należy w tym fragmencie js'a </p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span><span class="st0">&quot;a.link&quot;</span><span class="br0">&#41;</span>.click<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
<p>podmienić <code>click</code> na <code>hover</code>:</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span><span class="st0">&quot;a.link&quot;</span><span class="br0">&#41;</span>.hover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
<p>Hover sprawi, że menu to zachowywać się będzie identycznie jak to zamieszczone na <a href="http://www.apple.com/downloads/">www.apple.com</a>.</p>
<p>Jeszcze jednym efektem dla urozmaicenia wyglądu tego menu jest zwiększenie krycia po najechaniu kursorem na <code>.kategoria a.link</code>.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">
$<span class="br0">&#40;</span><span class="st0">&quot;.kategoria a.link&quot;</span><span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, .8<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
$<span class="br0">&#40;</span><span class="st0">&quot;.kategoria a.link&quot;</span><span class="br0">&#41;</span>.hover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, <span class="nu0">1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>,<span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, .8<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>; &nbsp; &nbsp; <br />
&nbsp;</div>
<p>Tym sposobem tak oto wygląda całkowity kod JS, który przyczynia się do ozywienia menu akordeonowego:</p>
<div class="javascript dean_ch" style="white-space: nowrap;">
&nbsp;$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;ul.fade&quot;</span><span class="br0">&#41;</span>.not<span class="br0">&#40;</span><span class="st0">&quot;:first&quot;</span><span class="br0">&#41;</span>.hide<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;a.link&quot;</span><span class="br0">&#41;</span>.click<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.fade:visible&quot;</span><span class="br0">&#41;</span>.hide<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.parent<span class="br0">&#40;</span><span class="br0">&#41;</span>.<a href="http://www.php.net/next"><span class="kw3">next</span></a><span class="br0">&#40;</span><span class="st0">'.fade'</span><span class="br0">&#41;</span>.fadeIn<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</p>
<p>$<span class="br0">&#40;</span><span class="st0">&quot;.kategoria a.link&quot;</span><span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, .8<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
$<span class="br0">&#40;</span><span class="st0">&quot;.kategoria a.link&quot;</span><span class="br0">&#41;</span>.hover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, <span class="nu0">1</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>,<span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.fadeTo<span class="br0">&#40;</span><span class="st0">&quot;fast&quot;</span>, .8<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp;</div>
<p>W taki sposób przestawia się tworzenie akoreonowego menu,<br />
mamy nadzieje, że artykuł ten okaże się dla Was pomocny.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1044&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F07%2F06%2Fmenu-akordeonowe-z-odrobina-css3%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/07/06/menu-akordeonowe-z-odrobina-css3/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Efekt graficznego podświetlenia w jQuery i Prototype z Scriptaculous</title>
		<link>http://vivee.info/2009/02/10/efekt-graficznego-podswietlenia-w-jquery-i-prototype-z-scriptaculous/</link>
		<comments>http://vivee.info/2009/02/10/efekt-graficznego-podswietlenia-w-jquery-i-prototype-z-scriptaculous/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 00:09:48 +0000</pubDate>
		<dc:creator>m1chu</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[highlighter]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[podświetlenie]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scriptaculous]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=620</guid>
		<description><![CDATA[Jedni nie korzystają z nich wcale, niektórzy tylko po to aby zwiększyć funkcjonalność tworzonych przez siebie stron, a u jeszcze innych zauważalny jest przepych tego typu rozwiązań. Biblioteki programistyczne języka JavaScript, bo o ich wykorzystaniu tu mowa to źródło bardzo różnorodnych, nie tylko funkcjonalnych, ale także estetycznych efektów. Sieć aż kipi od dobrych i słabych, [...]]]></description>
			<content:encoded><![CDATA[<p>Jedni nie korzystają z nich wcale, niektórzy tylko po to aby zwiększyć funkcjonalność tworzonych przez siebie stron, a u jeszcze innych zauważalny jest przepych tego typu rozwiązań. Biblioteki programistyczne języka JavaScript, bo o ich wykorzystaniu tu mowa to źródło bardzo różnorodnych, nie tylko funkcjonalnych, ale także estetycznych efektów. Sieć aż kipi od dobrych i słabych, lepiej oraz słabiej wytłumaczonych przykładów użycia możliwości <a href="http://mootools.net/" title="MooTools">MooTools</a>, <a href="http://jquery.com/" title="jQuery">jQuery</a>, <a href="http://www.prototypejs.org/" title="Prototype">Prototype</a> z <a href="http://script.aculo.us/" title="Scriptaculous">Scriptaculous</a>, czy innych mniej powszechnych frameworków.</p>
<p>Jednym z takich efektów jest możliwość stworzenia animowanego, graficznego podświetlenia pojawiającego się np. nad grafiką wywołującą animację. Interaktywność taka została opisana na <a href="http://utnij.eu/product-highlighter-mootools/" title="Product highlighter with MooTools">NetTuts</a> z wykorzystaniem MooTools. My osiągniemy taki wynik dzięki zastosowaniu jQuery (w jednym przykładzie) oraz dodatkowo także za pomocą Prototype wraz z Scriptaculous (w drugim przykładzie).</p>
<p><span id="more-620"></span></p>
<p class="picture" style="font-size: 10px;"><object type="application/x-shockwave-flash" width="538" height="352" data="http://www.vimeo.com/moogaloop.swf?clip_id=3136566&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA"><param name="quality" value="best" /><param name="allowfullscreen" value="true" /><param name="scale" value="showAll" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=3136566&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA" /><img src="http://farm1.static.flickr.com/190/3263308689_e6578263b5_o.png" alt="Oczekiwany efekt" style="height: 366px;" /></object><br />Oczekiwany efekt.</p>
<h2>Krok 1: Za co się chwycić na początku...</h2>
<p>Na początek musisz wiedzieć w jakim celu potrzebny jest Ci prezentowany w tym artykule efekt. Menu? Wyświetlanie dodatkowych informacji w graficznej liście produktów? Czy może szybki, animowany splash? Wybór jest Twój i podług niego będziesz musiał zaopatrzyć się w dodatkowe, niezbędne elementy do wykonania podświetlenia.</p>
<p>Chodzi tu mianowicie o grafiki, których musi być dwa razy więcej niż elementów podatnych na działanie mechanizmu. Powiedzmy, jeżeli chcemy w pięcioelementowym menu zastosować w każdym zdarzenie po najechaniu myszką zgodne z przesłaniem tego artykułu to potrzebujemy dziesięciu grafik. Pięć opisujących przyciski menu i drugie tyle będące "treścią" pojawiającą się po podświetleniu.</p>
<p>Po uporaniu się z wizualną częścią problemu oraz strony internetowej możemy ruszyć krok dalej.</p>
<h2>Krok 2: Zaopatrujemy się w jQuery i/lub Prototype i Scriptaculous!</h2>
<p><strong>jQuery</strong> to aktualnie najpopularniejsza biblioteka. I najłatwiej ją skatalogować w czeluścia własnego projektu. Wystarczy ze <a href="http://jquery.com/" title="jQuery">strony głównej</a> pobrać wersję <strong>1.3.1 production/Minified</strong> i umieścić ją w obrębie plików tworzonego przez nas przykładu (niezbędny będzie tylko plik <strong>jquery-1.3.1.min.js</strong>).</p>
<p>Z <strong>Prototype</strong> sprawa jest ciut bardziej skomplikowana, bo prócz standardowego frameworka musimy pobrać także dodatkowy interfejs w postaci <strong>Scriptaculous</strong>, dzięki któremu uzyskamy dostęp do efektu pozwalającego na dynamiczne zmienianie właściwości CSS elementów strony. Ściągamy więc <a href="http://utnij.eu/prototype-download/" title="Prototype">wersję 1.6.0.3 pierwszej biblioteki</a>, oraz paczkę z <a href="http://utnij.eu/scriptaculous-download/" title="Scriptaculous">wersją 1.8.2 drugiej</a>. Z obydwu wyodrębniamy pliki i w ramach folderu tworzonego przez nas projektu umieszczamy tylko <strong>prototype.js</strong> oraz <strong>effects.js</strong> (z drugiego archiwum).</p>
<p>W przypadku tego artykułu umownie pliki związane z frameworkami będą znajdować się w podkatalogu <strong>javascript</strong> folderu głównego. Obydwa przykłady (dotyczące, jeden <strong>jQuery</strong>, a drugi <strong>Prototype z Scriptaculous</strong>) będą oczywiście wykonywane w osobnych plikach znajdujących się w dwóch różnych katalogach.</p>
<p class="picture" style="font-size: 10px;"><img src="http://farm1.static.flickr.com/243/3263426717_b9e39151ce_o.png" alt="Rozdzielenie implementacji przykładów na dwa katalogi" style="height: 280px;" /><br />Przykładowe rozdzielenie implementacji przykładów na dwa katalogi. W naszym przypadku pliki <strong>.js</strong> znajdują się dodatkowo w podkatalogu <strong>javascript</strong>.</p>
<h2>Krok 3: Tworzymy strukturę XHTML</h2>
<p>Atutem naszego rozwiązania jest kompatybilność z serwowaniem dokumentu XHTML w postaci <code>application/xhtml+xml</code>, czego bardzo często brakuje w przypadku efektów opartych na bibliotekach JS. Z racji tego także, że i w przypadku <strong>Prototype</strong> i <strong>jQuery</strong> struktura strony pozostaje niezmienna to obojętnie który framework wykorzystujesz poniższe tłumaczenie i partie kodu będą prawidłowe.</p>
<p>Z powodu tego w jaki sposób będziemy wysyłać treść strony posłużymy się małą częścią kodu PHP, a co za tym idzie plik korzystający z naszego mechanizmu musi mieć też takie rozszerzenie (no chyba, że serwer jest inaczej skonfigurowany, ale to już problematyka do rozwiązania na inny temat).</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">'HTTP_ACCEPT'</span><span class="br0">&#93;</span>, <span class="st0">'application/xhtml+xml'</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="co1">// jeżeli przeglądarka obsługuje application/xhtml+xml</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Type: application/xhtml+xml; charset=utf-8&quot;</span><span class="br0">&#41;</span>; <span class="co1">// wysłanie odpowiednich nagłówków</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">'&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;'</span>.<span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">'&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot;'</span>.<span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">'&quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;'</span>.<span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw1">else</span> <span class="co1">// wysłanie dokumentu jako text/html dla przeglądarek nie obsługujących typu zawartości pliku z powyższego warunku, np. dla IE</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Type: text/html; charset=utf-8&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">'&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;'</span>.<span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">'&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;'</span>.<span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span>;<br />
<span class="br0">&#125;</span><br />
<span class="kw2">?&gt;</span></div>
<p>Poniżej dodajemy uniwersalny układ strony. Ważnym ułatwieniem jest możliwość tworzenia odnośników z elementów graficznych podatnych mechanizmowi, a także fakt, że nie korzystamy w nim z tagów <code>img</code>, a efektu zbliżonego do <a href="http://m1chu.eu/webmastering/efekt-rollover-w-css-bez-przeladowywania-obrazka" title="Efekt rollover">sliding-doors</a> w celu wyświetlania obrazów.</p>
<div class="xhtml dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;html.html"><span class="kw2">&lt;html</span></span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;pl&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;pl&quot;</span> xmlns<span class="sy0">=</span><span class="st0">&quot;http://www.w3.org/1999/xhtml&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;head&amp;gt;.html"><span class="kw2">&lt;head&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;meta.html"><span class="kw2">&lt;meta</span></span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;&lt;?php print ( stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml') ? 'application/xhtml+xml' : 'text/html' ); // typ zawartości zależny do możliwości przeglądarki użytkownika ?&gt;</span></span>; charset=utf-8&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;meta.html"><span class="kw2">&lt;meta</span></span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Description&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;Product highlighter - tworzenie dynamicznych opisów produktów - m1chu.eu&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;meta.html"><span class="kw2">&lt;meta</span></span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Keywords&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;product, highlighter&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;title&amp;gt;.html"><span class="kw2">&lt;title&gt;</span></span></a></span>Product highlighter<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/title&amp;gt;.html"><span class="kw2">&lt;/title&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;style.html"><span class="kw2">&lt;style</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>@import url('stylesheet.css');<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/style&amp;gt;.html"><span class="kw2">&lt;/style&gt;</span></span></a></span> <span class="sc2"><span class="coMULTI">&lt;!-- arkusz stylów --&gt;</span></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/head&amp;gt;.html"><span class="kw2">&lt;/head&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;body&amp;gt;.html"><span class="kw2">&lt;body&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;siteContainer&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;highlightsContainer&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> <span class="sc2"><span class="coMULTI">&lt;!-- zbiór grafik wyświetlanych przy najechaniu kursorem --&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;highlights&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;highlight1&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;highlights&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;highlight2&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;highlights&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;highlight3&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;pageContainer&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> <span class="sc2"><span class="coMULTI">&lt;!-- zbiór grafik podatnych na efekt --&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;pages&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page1&quot;</span>&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://m1chu.eu/&quot;</span>&gt;&lt;<span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;pages&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page2&quot;</span>&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://vivee.info/&quot;</span>&gt;&lt;<span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;pages&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;page3&quot;</span>&gt;&lt;a <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;http://utnij.eu/&quot;</span>&gt;&lt;<span class="sy0">/</span>a&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/body&amp;gt;.html"><span class="kw2">&lt;/body&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/html&amp;gt;.html"><span class="kw2">&lt;/html&gt;</span></span></a></span></div>
<h2>Krok 4: Stylizujemy strukturę strony za pomocą CSS</h2>
<p>Posługując się metodami <a href="http://m1chu.eu/2009/01/08/pozycjonujemy-za-pomoca-kaskadowego-arkusza-stylow-css/" title="Pozycjonowanie za pomocą CSS">pozycjonowania elementów</a> dostępnymi w kaskadowym arkuszu stylów możemy operując na elementach o identyfikatorach <code>siteContainer</code>, <code>pageContainer</code>, <code>highlightsContainer</code> oraz <code>divach</code> potomnych ułożyć i wystylizować wygląd, w tym położenie jak na wyżej zamieszczonym filmiku (screenie) obrazującym wykonanie zadania z tego artykułu.</p>
<p>Do wszystkich bloków kodu CSS odwołujących się do tagów zawierających identyfikatory grafik zostały dodane także właściwości <code>background</code> z adresem pliku tła.</p>
<p>W naszym przypadku poniższy kod zapisujemy do pliku <strong>stylesheet.css</strong>.</p>
<div class="css dean_ch" style="white-space: nowrap;"><span class="coMULTI">/* ustawienia domyślne dla ciała strony (w poprawnie wysyłanym XHTML jest to html+body, a nie tylko body) */</span><br />
html, body <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#000</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'bg.png'</span><span class="br0">&#41;</span> <span class="kw2">repeat-x</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#siteContainer</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">150px</span> <span class="kw2">auto</span> <span class="re3">0px</span> <span class="kw2">auto</span><span class="sy0">;</span> <span class="coMULTI">/* marginesy - wyśrodkowanie poziome */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">573px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">345px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span> <span class="coMULTI">/* relatywna pozycja, kontener */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'container.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">top</span> <span class="kw1">left</span><span class="sy0">;</span> <br />
<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
<span class="re0">#pageContainer</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span> <span class="coMULTI">/* pozycja względem #siteContainer */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">z-index</span><span class="sy0">:</span> <span class="nu0">5</span><span class="sy0">;</span> <span class="coMULTI">/* ponad ciałem strony i pod #highlightsContainer */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">top</span><span class="sy0">:</span> <span class="re3">128px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#highlightsContainer</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span> <span class="coMULTI">/* pozycja względem #siteContainer */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">z-index</span><span class="sy0">:</span> <span class="nu0">10</span><span class="sy0">;</span> <span class="coMULTI">/* ponad pozostałymi elementami */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">178px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">top</span><span class="sy0">:</span> <span class="re3">30px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* ustawienie w linii wraz z zmianą wyglądu kursora */</span><br />
<span class="re0">#pageContainer</span> &gt; div <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* rozmiary klikalnych divów potomnych znajdujących się w kontenerze listy grafik podatnych na działanie mechanizmu */</span><br />
<span class="re0">#pageContainer</span> &gt; div a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">178px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">178px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#page1</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">19px</span><span class="sy0">;</span> <span class="coMULTI">/* prawy margines - odstęp od kolejnego diva */</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#page1</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'icon_1.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span> <span class="coMULTI">/* tło grafiki podatnej na działanie efektu */</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#page2</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">20px</span><span class="sy0">;</span> <span class="coMULTI">/* prawy margines - odstęp od kolejnego diva */</span><br />
<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
<span class="re0">#page2</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'icon_2.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span> <span class="coMULTI">/* tło grafiki podatnej na działanie efektu */</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#page3</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'icon_3.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span> <span class="coMULTI">/* tło grafiki podatnej na działanie efektu */</span><br />
<span class="br0">&#125;</span></p>
<p><span class="coMULTI">/* rozmiary wszystkich potomków typu div kontenera zawierającego podświetlenia */</span><br />
<span class="re0">#highlightsContainer</span> &gt; div <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">222px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">101px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/* pliki tła w pojawiających się podświetleniach */</span><br />
<span class="re0">#highlight1</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'highlights_1.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#highlight2</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'highlights_2.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#highlight3</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">transparent</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'highlights_3.png'</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<h2>Krok 5a: Dodajemy jQuery do dokumentu</h2>
<p>Tego, czego zabrakło dotychczasowo w naszym dokumencie to załączenie bibliotek oraz pliku <strong>.js</strong> w którym będzie znajdować się kod animujący pożądany przez nas efekt.</p>
<p>Dla <strong>jQuery</strong> w sekcji <code>head</code> należy dodać pliki <strong>jquery-1.3.1.min.js</strong> oraz <strong>product-highlighter.js</strong> (który umownie będzie zawierał dodatkowy kod).</p>
<div class="xhtml dean_ch" style="white-space: nowrap;">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;javascript/jquery-1.3.1.min.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;javascript/product-highlighter.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<h2>Krok 5b: Dodajemy Prototype z Scriptaculous do dokumentu</h2>
<p>Tym razem musimy dodać jeden plik więcej. Bibliotekę (<strong>prototype.js</strong>), jej dodatkowy interfejs, a dokładniej plik zawierający obiekt <strong>Effect</strong> (<strong>effects.js</strong>) oraz jak w powyższym przypadku plik z naszym kodem animacji (<strong>product-highlighter.js</strong>).</p>
<div class="xhtml dean_ch" style="white-space: nowrap;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;javascript/prototype.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;javascript/effects.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;javascript/product-highlighter.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<h2>Krok 6a: Implementujemy kod animacji z użyciem jQuery</h2>
<p>Jak to bywa w przypadku tego frameworka, aby jakieś zdarzenie działało poprawnie powinno się je umieszczać w funkcji <code>$(document).ready()</code>, której zawartość zostanie załadowana w momencie załadowania drzewa dokumentu.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>kod<span class="br0">&#93;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>W <strong>[</strong><strong>kod]</strong> musimy przypisać (do tablicy) wg. klasy wszystkie grafiki wyświetlane podczas podświetlenia, ustawić parametry podstawowe CSS oraz stworzyć sprawdzanie w pętli, czy dana grafika o klasie <code>.pages</code> nie jest najechana przez kursor i w zależności o danego trybu (<em>kursor na/kursor poza</em>) wykonać pożądaną animacji (<em>wyłonienie dodatkowego tła / zanikanie dodatkowego tła</em>).</p>
<p>Poniższy kod umieszczamy w pliku <strong>product-highlighter.js</strong>.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// tablica elementów o klasie .highlights</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> highlights = $<span class="br0">&#40;</span><span class="st0">'.highlights'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// ustawienie pełnej przezroczystości elementów pojawiających się w czasie najechania myszką na obiekty podatne efektowi oraz widzialności ich kontenera</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'.highlights'</span><span class="br0">&#41;</span>.css<span class="br0">&#40;</span><span class="st0">'opacity'</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'#highlightsContainer'</span><span class="br0">&#41;</span>.css<span class="br0">&#40;</span><span class="st0">'visibility'</span>, <span class="st0">'visible'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// sprawdzanie każdego elementu podatnego mechanizmowi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'.pages'</span><span class="br0">&#41;</span>.<a href="http://www.php.net/each"><span class="kw3">each</span></a><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// jeżeli na danym elemencie znajduje się kursor</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>this<span class="br0">&#41;</span>.mouseover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// wykonanie animacji grafiki wyłanianej i przypisanej do najechanego elementu (margines o 15px w górę i brak przezroczystości w czasie 0,5 sekundy)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>highlights<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.animate<span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity: <span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; marginTop: <span class="st0">'-15px'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>, <span class="nu0">500</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>.mouseout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="co1">// jeżeli na danym elemencie nie znajduje się już kursor</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>highlights<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>.animate<span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity: <span class="nu0">0</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; marginTop: <span class="st0">'-0px'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>, <span class="nu0">500</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Należy jeszcze wyjaśnić dokładniej w jaki sposób działa <code>$(highlights[i]).animate()</code>. Mianowicie przy każdej iteracji pętli <code>$('.pages').each()</code> przekazuje ona do parametru <code>function(i)</code> aktualny numer elementu na którym się znajduje. Ponieważ w id <code>pageContainer</code> znaczniki potomne muszą być posegregowane i musi być ich tyle samo co obiektów graficznych w <code>highlightsContainer</code> to jeżeli kursor znajduje się na pierwszym podatnym na efekt obrazie to w podświetleniu wyłania się także pierwsza grafika. Wszystko to dzięki wyłuskaniu jej z tablicy <code>highlights</code> poprzez parametr <code>i</code>.</p>
<h2>Krok 6b: Implementujemy kod animacji z użyciem Prototype z Scriptaculous</h2>
<p>Podobnie w <strong>Prototype</strong> obserwujemy zdarzenie, ale tym razem załadowania całej strony w celu późniejszej obserwacji aktywności kursora na wybranych elementach aktywnych. Można oczywiście podobnie jak w poprzednim podpunkcie wykonać obserwacje zdarzeń wraz z załadowanie DOM (drzewa dokumentu) poprzez użycie <code>document.observe('dom:loaded', function() {})</code>. To tylko kwestia osobistego wyboru.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">Event.observe<span class="br0">&#40;</span>window, <span class="st0">'load'</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>kod<span class="br0">&#93;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Dalsze postępowanie jest adekwatne do tego opisanego w przypadku zastosowania <strong>jQuery</strong>. Z tymże, tablicę elementów o danej klasie pobiera się poprzez podwójny znak dolara (<code>$$</code>), a najechanie oraz zjechanie kursorem poza zadany obszar rozpoznaje się także poprzez obiekt <code>Event</code> i metodę <code>observe()</code>. Do animacji służy funkcja <code>Morph</code> instancji <code>Effect</code> z pliku <code>effects.js</code> interfejsu <strong>Scriptaculous</strong >.</p>
<div class="javascript dean_ch" style="white-space: nowrap;">Event.observe<span class="br0">&#40;</span>window, <span class="st0">'load'</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> highlights = $$<span class="br0">&#40;</span><span class="st0">'.highlights'</span><span class="br0">&#41;</span>; <span class="co1">// utworzenie tablicy</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; $$<span class="br0">&#40;</span><span class="st0">'.highlights'</span><span class="br0">&#41;</span>.invoke<span class="br0">&#40;</span><span class="st0">'setStyle'</span>, <span class="br0">&#123;</span> opacity: <span class="nu0">0</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">// ustawienie stylu przezroczystości</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; $$<span class="br0">&#40;</span><span class="st0">'#highlightsContainer'</span><span class="br0">&#41;</span>.invoke<span class="br0">&#40;</span><span class="st0">'setStyle'</span>, <span class="br0">&#123;</span> visibility: <span class="st0">'visible'</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">// widzialność kontenera</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; $$<span class="br0">&#40;</span><span class="st0">'.pages'</span><span class="br0">&#41;</span>.<a href="http://www.php.net/each"><span class="kw3">each</span></a><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>v, i<span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// pętla</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Event.observe<span class="br0">&#40;</span>v, <span class="st0">'mouseover'</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// zdarzenie wykonywane w momencie pojawienia się kursora na elemencie</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Effect.Morph<span class="br0">&#40;</span>highlights<span class="br0">&#91;</span>i<span class="br0">&#93;</span>, <span class="br0">&#123;</span> <span class="co1">// animacja</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style: <span class="st0">'opacity: 1; margin-top: -15px;'</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; duration: <span class="nu0">0.5</span> <span class="co1">// czas 0,5 sekundy</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Event.observe<span class="br0">&#40;</span>v, <span class="st0">'mouseout'</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// zdarzenie wykonywane w momencie wyjechania kursorem poza element</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Effect.Morph<span class="br0">&#40;</span>highlights<span class="br0">&#91;</span>i<span class="br0">&#93;</span>, <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style: <span class="st0">'opacity: 0; margin-top: 0px;'</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; duration: <span class="nu0">0.5</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Tym razem do funkcji w <code>$$('.pages').each()</code> przekazywane są dwa parametry: <code>v</code> i <code>i</code>. Pierwszy z nich jest odpowiednikiem <code>this</code> i wskazuje na aktualnie przetwarzany element tablicy znaczników o klasie <code>.pages</code>. Drugi to numer pokazujący który z kolei tag jest aktualnie sprawdzany. Inaczej pisząc jego zadanie jest równoznaczne do działania parametru <code>i</code> w przykładzie z <strong>jQuery</strong>.</p>
<h2>Demonstracja wyników...</h2>
<p>Stworzyłem dwa gotowe przykłady, których analiza pozwoli Wam jeszcze bardziej zrozumieć jak stworzyć ten efekt. <a href="http://use.m1chu.eu/examples/-jquery/product-highlighter/" title="Product Highlighter - jQuery"><strong>Pierwszy</strong></a>, za pomocą jQuery. <a href="http://use.m1chu.eu/examples/-prototype/product-highlighter/" title="Product Highlighter - Prototype z Scriptaculous"><strong>Drugi</strong></a>, za pomocą Prototype z Scriptaculous.</p>
<p>Jeżeli chcecie dowiedzieć się więcej o tych bibliotekach to zapraszam do ich dokumentacji (<a href="http://www.prototypejs.org/api" title="API Prototype">Prototype</a>, <a href="http://docs.jquery.com/Main_Page" title="API jQuery">jQuery</a>).</p>
<p style="font-size: 9px;">copyright &copy; 2008-2009, <strong>m1chu</strong></p>
<p style="font-size: 9px;">udostępnione na licencji <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="CC">CC</a> dla <strong>vivee.info</strong> i <strong>m1chu.eu</strong></p>
<img src="http://vivee.info/?ak_action=api_record_view&id=620&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F02%2F10%2Fefekt-graficznego-podswietlenia-w-jquery-i-prototype-z-scriptaculous%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/02/10/efekt-graficznego-podswietlenia-w-jquery-i-prototype-z-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google Maps API &#8211; pierwsze starcie</title>
		<link>http://vivee.info/2009/02/08/google-maps-api-pierwsze-starcie/</link>
		<comments>http://vivee.info/2009/02/08/google-maps-api-pierwsze-starcie/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 20:13:25 +0000</pubDate>
		<dc:creator>kamilgeneral</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=613</guid>
		<description><![CDATA[W moim kolejnym tutorialu przedstawię jak wstawić mapę od Google i ją zmodyfikować. Pobranie klucza Na stronie http://code.google.com/intl/pl/apis/maps/signup.html akceptujemy regulamin i wpisujemy adres strony. Po naciśnięciu na Generale API Key pojawi nam się długi klucz, kopiujemy go – zaraz nam się przyda. Kod mapy W sekcji head dajemy tylko, że zamiast NASZ_KLUCZ wpisujemy ten wygenerowany [...]]]></description>
			<content:encoded><![CDATA[<p>W moim kolejnym tutorialu przedstawię jak wstawić mapę od Google i ją zmodyfikować.</p>
<p class="insp">
<a href="http://rivnx.cuu.pl/_files/Google_Maps/google1.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a>
</p>
<p><span id="more-613"></span></p>
<h2>Pobranie klucza</h2>
<p>Na stronie <a href="http://code.google.com/intl/pl/apis/maps/signup.html">http://code.google.com/intl/pl/apis/maps/signup.html</a> akceptujemy regulamin i wpisujemy adres strony.<br />
Po naciśnięciu na Generale API Key pojawi nam się długi klucz, kopiujemy go – zaraz nam się przyda.</p>
<h2>Kod mapy</h2>
<p>W sekcji head dajemy tylko, że zamiast NASZ_KLUCZ wpisujemy ten wygenerowany wcześniej</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=NASZ_KLUCZ&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<p>Cały kod powinien być w</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> initialize<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>GBrowserIsCompatible<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="co1">// Nasz kod</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>Dzięki temu mamy pewność, że mapy będzie można oglądać tylko w przeglądarkach w których Google Maps są wyświetlane poprawnie.</p>
<p>Teraz pora dodać naszą mapę.<br />
Pierwszy wiersz mówi gdzie ma być wyświetlona mapa (w tym przypadku w divie o id <code>map_canvas</code>). Drugi jakie współrzędne ma wyświetlić, a trzeci przybliżenie</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">var</span> map = <span class="kw2">new</span> GMap2<span class="br0">&#40;</span>document.getElementById<span class="br0">&#40;</span><span class="st0">&quot;map_canvas&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="kw2">var</span> center = <span class="kw2">new</span> GLatLng<span class="br0">&#40;</span><span class="nu0">51.76869</span>, <span class="nu0">19.47155</span><span class="br0">&#41;</span>;<br />
map.setCenter<span class="br0">&#40;</span>center, <span class="nu0">12</span><span class="br0">&#41;</span>;</div>
<p>Warto dodać sterowanie mapą. Pierwsza linijka kodu ładuję funkcje, druga daje możliwość przełączanie pomiędzy mapa/satelita/hybrydowa, a ostatnie linijka dodaje sterowanie mapą </p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">var</span> mapControl = <span class="kw2">new</span> GMapTypeControl<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
map.addControl<span class="br0">&#40;</span>mapControl<span class="br0">&#41;</span>;<br />
map.addControl<span class="br0">&#40;</span><span class="kw2">new</span> GLargeMapControl<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
<p>Warto by było coś na tej mapie zaznaczyć, więc dodajemy marker. Jeśli wpiszemy true marker będzie przesuwalny, a przy false zostanie nieruchomy</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">var</span> marker = <span class="kw2">new</span> GMarker<span class="br0">&#40;</span>center, <span class="br0">&#123;</span>draggable: <span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Jeśli zaznaczyliśmy, że marker da się przesuwać warto dodać ten kod by podczas przesuwanie go chmurka znikła</p>
<div class="php dean_ch" style="white-space: nowrap;">GEvent.addListener<span class="br0">&#40;</span>marker, <span class="st0">&quot;dragstart&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
map.closeInfoWindow<span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>A teraz dodajemy co ma się wyświetlić nad znaczkiem gdy na niego klikniemy</p>
<div class="php dean_ch" style="white-space: nowrap;">GEvent.addListener<span class="br0">&#40;</span>marker, <span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
marker.openInfoWindowHtml<span class="br0">&#40;</span><span class="st0">&quot;Testowy tekst!&quot;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>I teraz wyświetlenie markerów na mapie</p>
<div class="php dean_ch" style="white-space: nowrap;">map.addOverlay<span class="br0">&#40;</span>marker<span class="br0">&#41;</span>;</div>
<p>Zamiast zwykłego <body> powinno być</p>
<div class="pre dean_ch" style="white-space: nowrap;">&lt;body onload=&quot;initialize()&quot; onunload=&quot;GUnload()&quot;&gt;</div>
<p>A przykładowy div, w którym wyświetla się mapa to np.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="sy0">&lt;</span>div id=<span class="st0">&quot;map_canvas&quot;</span> style=<span class="st0">&quot;width: 500px; height: 350px&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span></div>
<h2>Współrzędne</h2>
<p>By pobrać współrzędne wchodzimy na http://maps.google.pl, ustawiamy tak mapę jak nam odpowiada i naciskamy na Link.<br />
Pojawi nam się np. coś takiego <a href="http://maps.google.pl/?ie=UTF8&#038;ll=52.025459,19.204102&#038;spn=6.112899,14.150391&#038;z=6  52.025459,19.204102">http://maps.google.pl/?ie=UTF8&#038;ll=52.025459,19.204102&#038;spn=6.112899,14.150391&#038;z=6<br />
52.025459,19.204102</a> to nasze współrzędne, a 6 na końcu to przybliżenie.</p>
<h2>Cały kod</h2>
<div class="php dean_ch" style="white-space: nowrap;"><span class="sy0">&lt;</span>html<span class="sy0">&gt;</span><br />
&nbsp; <span class="sy0">&lt;</span>head<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>script src=<span class="st0">&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=NASZ_KOD&quot;</span> type=<span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;&lt;/</span>script<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>script type=<span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> initialize<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>GBrowserIsCompatible<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> map = <span class="kw2">new</span> GMap2<span class="br0">&#40;</span>document.getElementById<span class="br0">&#40;</span><span class="st0">&quot;map_canvas&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> center = <span class="kw2">new</span> GLatLng<span class="br0">&#40;</span><span class="nu0">51.76869</span>, <span class="nu0">19.47155</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.setCenter<span class="br0">&#40;</span>center, <span class="nu0">12</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> mapControl = <span class="kw2">new</span> GMapTypeControl<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.addControl<span class="br0">&#40;</span>mapControl<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.addControl<span class="br0">&#40;</span><span class="kw2">new</span> GLargeMapControl<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> marker = <span class="kw2">new</span> GMarker<span class="br0">&#40;</span>center, <span class="br0">&#123;</span>draggable: <span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GEvent.addListener<span class="br0">&#40;</span>marker, <span class="st0">&quot;dragstart&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.closeInfoWindow<span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GEvent.addListener<span class="br0">&#40;</span>marker, <span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; marker.openInfoWindowHtml<span class="br0">&#40;</span><span class="st0">&quot;Testowy tekst!&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.addOverlay<span class="br0">&#40;</span>marker<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">&lt;/script&gt;</span><br />
&nbsp; <span class="sy0">&lt;/</span>head<span class="sy0">&gt;</span><br />
&nbsp; <span class="sy0">&lt;</span>body onload=<span class="st0">&quot;initialize()&quot;</span> onunload=<span class="st0">&quot;GUnload()&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>div id=<span class="st0">&quot;map_canvas&quot;</span> style=<span class="st0">&quot;width: 500px; height: 350px&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp; <span class="sy0">&lt;/</span>body<span class="sy0">&gt;</span><br />
<span class="sy0">&lt;/</span>html<span class="sy0">&gt;</span></div>
<h2>Podsumowanie</h2>
<p>Po raz kolejny widać, że stosowanie googlowych wynalazków jest banalne. Z drugiej strony to co przedstawiłem powyżej jest tylko niewielką cząstką tego co z tym można zrobić. Wystarczy rozejrzeć się po stronach internetowych by zobaczyć wiele sposobów zastosowania Google Maps. Jednak taka integracja wymaga już od nas czegoś więcej niż przeczytanie dokumentacji API.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=613&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F02%2F08%2Fgoogle-maps-api-pierwsze-starcie%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/02/08/google-maps-api-pierwsze-starcie/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Efektowne wykresy za pomocą Google Visualization API</title>
		<link>http://vivee.info/2009/01/16/efektowne-wykresy-za-pomoca-google-visualization-api/</link>
		<comments>http://vivee.info/2009/01/16/efektowne-wykresy-za-pomoca-google-visualization-api/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 16:35:15 +0000</pubDate>
		<dc:creator>kamilgeneral</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Skrypty server-side]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=513</guid>
		<description><![CDATA[W tym tutorialu postaram się Wam przedstawić jak zrobić wykres kołowy i słupkowy (pionowy jak i poziomy) za pomocą Google Visualization API. Wykres kołowy Demo Na początku musimy załadować JavaScript API. google.load&#40;'visualization', '1', &#123;'packages':&#91;'piechart'&#93;&#125;&#41;; Rysowanie wykresu. google.setOnLoadCallback&#40;drawChart&#41;; Teraz tworzenie tabeli. Musimy podać rodzaje i nazwy kolumn, oraz ilość rekordów. function drawChart&#40;&#41; &#123; var data = [...]]]></description>
			<content:encoded><![CDATA[<p>W tym tutorialu postaram się Wam przedstawić jak zrobić wykres kołowy i słupkowy (pionowy jak i poziomy) za pomocą Google Visualization API.<br />
<span id="more-513"></span></p>
<h2>Wykres kołowy</h2>
<p class="picture"><img src="http://pliki.vivee.info/api1.jpg" alt="Efektowne wykresy za pomocą Google Visualization API" /></p>
<p style="text-align:center;"><a href="http://rivnx.cuu.pl/_files/Google_Visualization_API/page1.html">Demo</a></p>
<p>Na początku musimy załadować JavaScript API.</p>
<div class="php dean_ch" style="white-space: nowrap;">google.load<span class="br0">&#40;</span><span class="st0">'visualization'</span>, <span class="st0">'1'</span>, <span class="br0">&#123;</span><span class="st0">'packages'</span>:<span class="br0">&#91;</span><span class="st0">'piechart'</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Rysowanie wykresu.</p>
<div class="php dean_ch" style="white-space: nowrap;">google.setOnLoadCallback<span class="br0">&#40;</span>drawChart<span class="br0">&#41;</span>;</div>
<p>Teraz tworzenie tabeli. Musimy podać rodzaje i nazwy kolumn, oraz ilość rekordów.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> drawChart<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw2">var</span> data = <span class="kw2">new</span> google.visualization.DataTable<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addColumn<span class="br0">&#40;</span><span class="st0">'string'</span>, <span class="st0">'Zadanie'</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addColumn<span class="br0">&#40;</span><span class="st0">'number'</span>, <span class="st0">'Godzin dziennie'</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addRows<span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span>;</div>
<p>Pora na dane do tabeli. Teraz w naszych danych podajemy numer w jakiej kolejności mają być pokazywane rekordy (zaczynamy liczenie od zera). Po przecinku podajemy 0 jeśli chcemy podać następnie nazwę rekordy i w następnym wierszu 1 jeśli chcemy dać wartość.</p>
<div class="php dean_ch" style="white-space: nowrap;">data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="st0">'Spanie'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">10</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">0</span>, <span class="st0">'Jedzenie'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">1</span>, <span class="nu0">1</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">0</span>, <span class="st0">'Szkoła'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">1</span>, <span class="nu0">8</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">0</span>, <span class="st0">'Kompter'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">1</span>, <span class="nu0">3</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">4</span>, <span class="nu0">0</span>, <span class="st0">'Inne'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">2</span><span class="br0">&#41;</span>;</div>
<p>Podajemy gdzie ma się pojawić wykres i jaki rodzaj . W tym przypadku pojawi się w divie o nazwie <code>chart_div</code> i rodzaju tak jak podaliśmy wcześniej <strong>PieChart</strong>.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">var</span> chart = <span class="kw2">new</span> google.visualization.PieChart<span class="br0">&#40;</span>document.getElementById<span class="br0">&#40;</span><span class="st0">'chart_div'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
<p>I na koniec wielkość, rodzaj (2D/3D) i nazwa całego wykresu.</p>
<div class="php dean_ch" style="white-space: nowrap;">chart.draw<span class="br0">&#40;</span>data, <span class="br0">&#123;</span>width: <span class="nu0">400</span>, height: <span class="nu0">240</span>, is3D: <span class="kw2">true</span>, title: <span class="st0">'Mój dzień'</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Cały kod:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;html&amp;gt;.html"><span class="kw2">&lt;html&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;head&amp;gt;.html"><span class="kw2">&lt;head&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://www.google.com/jsapi&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; google.load('visualization', '1', {'packages':['piechart']});<br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; google.setOnLoadCallback(drawChart);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; function drawChart() {<br />
&nbsp; &nbsp; &nbsp; &nbsp; var data = new google.visualization.DataTable();<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addColumn('string', 'Zadanie');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addColumn('number', 'Godzin dziennie');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addRows(5);<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(0, 0, 'Spanie');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(0, 1, 10);<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(1, 0, 'Jedzenie');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(1, 1, 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(2, 0, 'Szkoła');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(2, 1, 8);<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(3, 0, 'Kompter');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(3, 1, 3);<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(4, 0, 'Inne');<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue(4, 1, 2);</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; var chart = new google.visualization.PieChart(document.getElementById('chart_div'));<br />
&nbsp; &nbsp; &nbsp; &nbsp; chart.draw(data, {width: 400, height: 240, is3D: true, title: 'Mój dzień'});<br />
&nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/head&amp;gt;.html"><span class="kw2">&lt;/head&gt;</span></span></a></span></p>
<p>&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;body&amp;gt;.html"><span class="kw2">&lt;body&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;chart_div&quot;</span>&gt;&lt;<span class="sy0">/</span>div&gt;</span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/body&amp;gt;.html"><span class="kw2">&lt;/body&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/html&amp;gt;.html"><span class="kw2">&lt;/html&gt;</span></span></a></span></div>
<h2>Wykres słupkowy</h2>
<p style="text-align:center;"><a href="http://rivnx.cuu.pl/_files/Google_Visualization_API/page2.html">Demo</a></p>
<p class="picture"><img src="http://pliki.vivee.info/api2.jpg" alt="Efektowne wykresy za pomocą Google Visualization API" /></p>
<p>Tak samo jak w poprzedni przykładzie rozpoczynamy od podlinkowanie JavaScript API.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="sy0">&lt;</span>script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;http://www.google.com/jsapi&quot;</span><span class="sy0">&gt;&lt;/</span>script<span class="sy0">&gt;</span></div>
<p>Teraz jako rodzaj wykresu wybieramy <strong>columnchart</strong> jeśli chcemy wykres pionowy lub <strong>barchart</strong> dla wykresu poziomego.</p>
<div class="php dean_ch" style="white-space: nowrap;">google.load<span class="br0">&#40;</span><span class="st0">&quot;visualization&quot;</span>, <span class="st0">&quot;1&quot;</span>, <span class="br0">&#123;</span>packages:<span class="br0">&#91;</span><span class="st0">&quot;columnchart&quot;</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Następnie rysowanie wykresu.</p>
<div class="php dean_ch" style="white-space: nowrap;">google.setOnLoadCallback<span class="br0">&#40;</span>drawChart<span class="br0">&#41;</span>;</div>
<p>Tabelę danych tworzymy na tej samej zasadzie co poprzednio:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> drawChart<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp;<span class="kw2">var</span> data = <span class="kw2">new</span> google.visualization.DataTable<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addColumn<span class="br0">&#40;</span><span class="st0">'string'</span>, <span class="st0">'Rok'</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addColumn<span class="br0">&#40;</span><span class="st0">'number'</span>, <span class="st0">'Sprzedarz'</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addColumn<span class="br0">&#40;</span><span class="st0">'number'</span>, <span class="st0">'Koszty'</span><span class="br0">&#41;</span>;<br />
&nbsp;data.addRows<span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span>;</div>
<p>Tym razem dane się nam zmieniły. Też mamy numer, potem pod 0 mamy nazwę (w tym przykładzie rok), pod '1' pierwsza wartość, a pod '2' druga wartość.</p>
<div class="php dean_ch" style="white-space: nowrap;">data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="st0">'2004'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">1000</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">400</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">0</span>, <span class="st0">'2005'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">1</span>, <span class="nu0">1170</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">2</span>, <span class="nu0">460</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">0</span>, <span class="st0">'2006'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">1</span>, <span class="nu0">660</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">2</span>, <span class="nu0">1120</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">0</span>, <span class="st0">'2007'</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">1</span>, <span class="nu0">1030</span><span class="br0">&#41;</span>;<br />
data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">2</span>, <span class="nu0">540</span><span class="br0">&#41;</span>;</div>
<p>I na koniec taki sam kod tak jak przedtem, więc nie będę go omawiał. Musimy typamiętać by podać ColumnChart jeśli mamy wykres pionowy, albo BarChart jeśli mamy poziomy.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">var</span> chart = <span class="kw2">new</span> google.visualization.ColumnChart<span class="br0">&#40;</span>document.getElementById<span class="br0">&#40;</span><span class="st0">'chart_div'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
chart.draw<span class="br0">&#40;</span>data, <span class="br0">&#123;</span>width: <span class="nu0">400</span>, height: <span class="nu0">240</span>, is3D: <span class="kw2">true</span>, title: <span class="st0">'Zyski'</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
<p>Cały kod:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="sy0">&lt;</span>html<span class="sy0">&gt;</span><br />
&nbsp; <span class="sy0">&lt;</span>head<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;http://www.google.com/jsapi&quot;</span><span class="sy0">&gt;&lt;/</span>script<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>script type=<span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; google.load<span class="br0">&#40;</span><span class="st0">&quot;visualization&quot;</span>, <span class="st0">&quot;1&quot;</span>, <span class="br0">&#123;</span>packages:<span class="br0">&#91;</span><span class="st0">&quot;columnchart&quot;</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; google.setOnLoadCallback<span class="br0">&#40;</span>drawChart<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span class="kw2">function</span> drawChart<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> data = <span class="kw2">new</span> google.visualization.DataTable<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addColumn<span class="br0">&#40;</span><span class="st0">'string'</span>, <span class="st0">'Rok'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addColumn<span class="br0">&#40;</span><span class="st0">'number'</span>, <span class="st0">'Sprzedarz'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addColumn<span class="br0">&#40;</span><span class="st0">'number'</span>, <span class="st0">'Koszty'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.addRows<span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="st0">'2004'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">1000</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">400</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">0</span>, <span class="st0">'2005'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">1</span>, <span class="nu0">1170</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">2</span>, <span class="nu0">460</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">0</span>, <span class="st0">'2006'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">1</span>, <span class="nu0">660</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="nu0">2</span>, <span class="nu0">1120</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">0</span>, <span class="st0">'2007'</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">1</span>, <span class="nu0">1030</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; data.setValue<span class="br0">&#40;</span><span class="nu0">3</span>, <span class="nu0">2</span>, <span class="nu0">540</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> chart = <span class="kw2">new</span> google.visualization.ColumnChart<span class="br0">&#40;</span>document.getElementById<span class="br0">&#40;</span><span class="st0">'chart_div'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; chart.draw<span class="br0">&#40;</span>data, <span class="br0">&#123;</span>width: <span class="nu0">400</span>, height: <span class="nu0">240</span>, is3D: <span class="kw2">true</span>, title: <span class="st0">'Zyski'</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw2">&lt;/script&gt;</span><br />
&nbsp; <span class="sy0">&lt;/</span>head<span class="sy0">&gt;</span></p>
<p>&nbsp; <span class="sy0">&lt;</span>body<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>div id=<span class="st0">&quot;chart_div&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp; <span class="sy0">&lt;/</span>body<span class="sy0">&gt;</span></div>
<h2>Podsumowanie</h2>
<p>To co tutaj zaprezentowałem jest tylko ułamkiem możliwości <strong>Google Visualization API</strong>. Zachęcam do odwiedzenia oficjalnej strony. Można tam znaleźć pełną dokumentację oraz ciekawe przykłady zostosowań.</p>
<p>W połączeniu z umiejętnościami programistycznymi na bazie Google Visualization API można wyczarowań naprawdę wiele efektownie wyglądających rzeczy.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=513&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F01%2F16%2Fefektowne-wykresy-za-pomoca-google-visualization-api%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/01/16/efektowne-wykresy-za-pomoca-google-visualization-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pobieranie danych z MySQL w tle</title>
		<link>http://vivee.info/2009/01/01/pobieranie-danych-z-mysql-w-tle/</link>
		<comments>http://vivee.info/2009/01/01/pobieranie-danych-z-mysql-w-tle/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 11:47:39 +0000</pubDate>
		<dc:creator>majareq</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Skrypty server-side]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[baza danych]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[łączenie z bazą]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=338</guid>
		<description><![CDATA[Temat jak najbardziej na czasie dla każdego webmastera. Żyjemy w czasach kiedy Ajax jest chlebem powszednim dla każdego profesjonalnego twórcy stron WWW. Jednak rzadko kto umie wykorzystać techniki Ajaxa w praktyce. Ten artykuł obrał za cel przynajmniej w części to zmienić. Całość artykułu i skryptu opierałem na rozwiązaniu Ajax'owym z W3School. Więc do rzeczy! By [...]]]></description>
			<content:encoded><![CDATA[<p>Temat jak najbardziej na czasie dla każdego webmastera. Żyjemy w czasach kiedy Ajax jest chlebem powszednim dla każdego profesjonalnego twórcy stron WWW. Jednak rzadko kto umie wykorzystać techniki Ajaxa w praktyce. Ten artykuł obrał za cel przynajmniej w części to zmienić.</p>
<p class="insp">
<a href="http://majareq.viawww.pl/demos/ajaxsql/ajax.php"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a> <a href="http://majareq.viawww.pl/demos/ajaxsql.zip"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<p><span id="more-338"></span><br />
Całość artykułu i skryptu opierałem na rozwiązaniu Ajax'owym z W3School.</p>
<p>Więc do rzeczy! By zrobić to u siebie musisz wykonać następujące czynności:</p>
<ol>
<li>Utworzyć odpowiednią tabelę w bazie danych.</li>
<li>Stworzyć kod HTML z listą w formularzu, odwołujący się do pliku Ajaxa.</li>
<li>Stworzyć kod Ajaxowy obsługujący drugi plik PHP.</li>
<li>Stworzyć plik PHP wywołujący dane z bazy.</li>
</ol>
<h2>Tabela SQL</h2>
<p>Najpierw potrzebna nam w bazie danych tabela zawierające dane, które mamy dynamicznie pobierać.<br />
U mnie jest to w formie: </p>
<table>
<tr>
<th>id</th>
<th>imie</th>
<th>nazwisko</th>
<th>miasto</th>
</tr>
<tr>
<td>1</td>
<td>Adam</td>
<td>Kowalski</td>
<td>Warszawa</td>
</tr>
<tr>
<td>2</td>
<td>Joanna</td>
<td>Ogrodnik</td>
<td>Kraków</td>
</tr>
<tr>
<td>3</td>
<td>Paweł </td>
<td>Kostucha</td>
<td>Gniezno</td>
</tr>
<tr>
<td>4</td>
<td>Marta</td>
<td>Ługowska</td>
<td>Elbląg</td>
</tr>
</table>
<p>Zrzut bazy danych dostępny jest <a href="http://majareq.viawww.pl/demos/ajaxsql/ajax.sql">tutaj</a>. </p>
<p>Pole <code>id</code> jest kluczem w tabeli i zawiera dodatkowy argument – <code>auto_increment</code>.<br />
Oznacza to (<code>auto_icrement</code>), że nie musimy za każdym razem gdy dodajemy nową osobę do bazdy danych, wpisywać kolejnego id. Skrypt zrobi to za nas.<br />
Ustawiając <code>PRIMARY KEY</code> (klucz główny) na id, spełniamy wymóg jaki narzuca nam działanie relacyjnych baz danych, identyfikujemy wiersze w tabeli.</p>
<h2>Główny plik – ajax.php</h2>
<p>Skoro już mamy tabelę w bazie możemy zapełnić ją rekordami. Dane wpisujcie dowolnie <img src='http://vivee.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Przystępujemy do drugiego kroku naszego tutoriala. Plik ajax.php:<br />
Pierwsza i najważniejsza kwestia: połączenie z bazą danych. Robimy to w następujący sposób:</p>
<div class="php dean_ch" style="white-space: nowrap;"><a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">'host'</span>,<span class="st0">'użytkownik_bazy'</span>,<span class="st0">'hasło_użytkownika'</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">'nazwa_bazy_danych'</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Nie odnaleziono bazy danych&quot;</span><span class="br0">&#41;</span>;</div>
<p>Pierwszą wywoływaną funkcją jest <code>mysql_connect()</code> gdzie parametrami są kolejno: host, użytkownik i hasło. W 99% przypadków w miejsce hostu należy wpisać po prostu localhost.</p>
<p>Potem wywołujemy funkcję <code>mysql_select_db()</code> która oznacza, jak nie trudno jest się domyśleć, wybranie bazy danych. Dalsza część kodu zaczynająca się od or die zakończy działanie skryptu i wyświetli napis znajdujący się pomiędzy cydzysłowami jeśli za pomocą wcześniej podanych informacji na temat użytkownika i hostu nie można połączyć się z bazą dany MySQL.</p>
<p>Jeśli dobrze wypełniłeś ten fragment kodu możemy przejść dalej:</p>
<div class="php dean_ch" style="white-space: nowrap;"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;script src=&quot;ajax.js&quot;&gt;&lt;/script&gt;'</span>;</div>
<p>Tego chyba nie muszę tłumaczyć. Oznacza to odwołanie się do pliku ajax.js. Możemy iść dalej.<br />
Zajmiemy się teraz instrukcją liczącą rekordy w tabeli i wyświetlający odpowiednie napisy:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="re0">$liczRekordy</span> = <a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM ajaxsql&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$liczRekordy</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'&lt;center&gt;&lt;font size=&quot;3&quot; color=&quot;#7dab1b&quot;&gt;Mamy '</span>.<span class="re0">$liczRekordy</span>.<span class="st0">' osób w bazie.&lt;/font&gt;&lt;/center&gt;'</span>;<br />
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'&lt;center&gt;&lt;font size=&quot;3&quot; color=&quot;#df1080&quot;&gt;Nie ma osób w bazie.&lt;/font&gt;&lt;/center&gt;'</span>;<br />
<span class="br0">&#125;</span></div>
<p>Co zrobiliśmy teraz?</p>
<ol>
<li>Zmiennej o nazwie <code>$liczRekordy</code> nadaliśmy wartość ilości rekordów w tabeli o nazwie <code>ajaxsql</code>.</li>
<li>Sprawdziliśmy czy jest jakiś rekord w tej tabeli i wyświetliśmy napis pokazujący ile jest tych rekordów. W przeciwnym wypadku napisaliśmy napis „Nie ma osób w bazie.”.</li>
</ol>
<p>Przyszła pora na listę wyboru oraz tak zwany <em>placeholder</em> czyli miejsce gdzie będą pokazywać się  rekordy z bazy danych. Dokonujemy tego za pomoca następującego kodu:</p>
<div class="php dean_ch" style="white-space: nowrap;"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;form&gt;Wybierz osobę:<br />
&lt;select name=&quot;users&quot; onchange=&quot;showUser(this.value)&quot;&gt;&lt;option&gt;wybierz zgloszenie&lt;/option&gt;'</span>;<br />
<span class="re0">$sql2</span>=<span class="st0">&quot;SELECT * FROM ajaxsql ORDER by id ASC&quot;</span>;<br />
<span class="re0">$result2</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql2</span><span class="br0">&#41;</span>;<br />
<span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row2</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$result2</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;option value=&quot;</span><span class="st0">&quot; . $row2['id'] . &quot;</span><span class="st0">&quot;&gt;(&quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'id'</span><span class="br0">&#93;</span> . <span class="st0">&quot;) &quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'imie'</span><span class="br0">&#93;</span> . <span class="st0">&quot; &quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'nazwisko'</span><span class="br0">&#93;</span> . <span class="st0">&quot;&lt;/option&gt;&quot;</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;/select&gt;&lt;/form&gt;&lt;div id=&quot;txtHint&quot;&gt;&lt;/div&gt;'</span>;</div>
<p>Pora na krótką analizę:<br />
Najpierw tworzymy formularz za pomocą <code>&lt;form&gt;</code>, potem tworzymy listę wyboru <code>&lt;select&gt;</code> nadajemu mu m.in parametr <code>onchange</code> wywołujący funkcję JS <code>showUser</code> która pokazuje aktualnie wybraną wartość. Potem wywołujemy wszystkie rekordy z tabeli '<code>ajaxsql</code>' sortując rosnąco. Wyświetlania rekordów z bazy dokonujemy za pomocą pętli <code>while</code>. Następnie zamykamy listę i formularz oraz tworzymy <em>placeholder</em>, który niedługo zdefiniujemy w pliku <code>ajax.js</code></p>
<p>No dobrze. Skończyliśmy pisać plik <code>ajax.js</code> . Twoja wersja tego pliku powinna wyglądać mniej więcej tak:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">'host'</span>,<span class="st0">'użytkownik_bazy'</span>,<span class="st0">'hasło_użytkownika'</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">'nazwa_bazy_danych'</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Nie odnaleziono bazy danych&quot;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;script src=&quot;ajax.js&quot;&gt;&lt;/script&gt;'</span>;<br />
<span class="re0">$liczRekordy</span> = <a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM ajaxsql&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$liczRekordy</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'&lt;center&gt;&lt;font size=&quot;3&quot; color=&quot;#7dab1b&quot;&gt;Mamy '</span>.<span class="re0">$liczRekordy</span>.<span class="st0">' osób w bazie.&lt;/font&gt;&lt;/center&gt;'</span>;<br />
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'&lt;center&gt;&lt;font size=&quot;3&quot; color=&quot;#df1080&quot;&gt;Nie ma osób w bazie.&lt;/font&gt;&lt;/center&gt;'</span>;<br />
<span class="br0">&#125;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;form&gt;Wybierz osobę:<br />
&lt;select name=&quot;users&quot; onchange=&quot;showUser(this.value)&quot;&gt;&lt;option&gt;wybierz zgloszenie&lt;/option&gt;'</span>;<br />
<span class="re0">$sql2</span>=<span class="st0">&quot;SELECT * FROM ajaxsql ORDER by id ASC&quot;</span>;<br />
<span class="re0">$result2</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql2</span><span class="br0">&#41;</span>;<br />
<span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row2</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$result2</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;option value=&quot;</span><span class="st0">&quot; . $row2['id'] . &quot;</span><span class="st0">&quot;&gt;(&quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'id'</span><span class="br0">&#93;</span> . <span class="st0">&quot;) &quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'imie'</span><span class="br0">&#93;</span> . <span class="st0">&quot; &quot;</span> . <span class="re0">$row2</span><span class="br0">&#91;</span><span class="st0">'nazwisko'</span><span class="br0">&#93;</span> . <span class="st0">&quot;&lt;/option&gt;&quot;</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a><span class="st0">'&lt;/select&gt;&lt;/form&gt;&lt;div id=&quot;txtHint&quot;&gt;&lt;/div&gt;'</span>;<br />
<span class="kw2">?&gt;</span></div>
<h2>Plik Ajaxa – ajax.js</h2>
<p>Plik <code>ajax.js</code> oparłem na rozwiązaniu W3School więc od razu zaznaczam, że nie ja jestem jego autorem. Lecz postaram się w miarę moich skromnych możliwości skutecznie go objaśnić. Nie będę teraz pokazywał poszczególnych cześci kodu, ponieważ śmiało możecie go pobrać z <a href="http://majareq.viawww.pl/demos/ajaxsql/ajax.js">tego adresu</a>. </p>
<p>Plik ten zawiera 3 funkcje. Pierwsza z nich to wspominana już funkcja <code>showUser</code>.<br />
Sprawdza ona najpierw czy Twoja przeglądarka obsługuje HTTP Reguest, jeśli nie to wyświetli po prostu komunikat „Browser does not support HTTP Request”. Używa także ostatniej w pliku funkcji czyli GetXmlHttpObject(), której działanie opisuje następne zdanie.</p>
<p>Jeśli przeglądarka nie obsługuje XMLHttpRequest (a obługują przeglądarki na Gecko) to używa ona ActiveXObject obsługiwanego przez popularnie nazywane badzIEwie czyli Internet Explorer.</p>
<p>Potem definiuję zmienną <code>url</code>, która będzie odwoływać się do pliku omówionego w następnym kroku – <code>getajax.php</code><br />
Obsługuje ona też dalsze parametry adresu url definiując tablicę <code>$_GET['q']</code>.</p>
<p>Kolejna funkcja - <code>stateChanged()</code> definuje nasz opisany już <em>placeholder</em>.</p>
<p>To koniec pliku <code>ajax.js</code> <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Pora na następny krok.</p>
<h2>Plik obsługiwany przez Ajax – getajax.php</h2>
<p>Tutaj godne podkreślenia jest to że należy osobno łączyć się z bazą danych. Nie można używać żadnych z tych funkcji: include(), require(), require_once(), include_once(). Zatem... PHP czas zacząć!</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="re0">$q</span>=<span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&quot;q&quot;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$con</span> = <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">'host'</span>, <span class="st0">'user'</span>, <span class="st0">'hasło'</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$con</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">'Nie mogę się połączyć. Error: '</span> . <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span></div>
<p>Tym kodem zrobiliśmy następujące rzeczy: przekazaliśmy do zmiennej <code>$q</code> dane z tablicy <code>$_GET['q']</code> czyli parametry url'a. Potem wywołaliśmy instrukcję łączenia się z bazą danych. W przypadku nie powodzenia skrypt wyświetli nam błąd o treść: <em>„Nie mogę się połączyć. Error: szczegóły_błędu”</em>. A oto co wykonujemy potem:</p>
<div class="php dean_ch" style="white-space: nowrap;"><a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-type: text/html; charset=iso-8859-2&quot;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">&quot;baza&quot;</span>, <span class="re0">$con</span><span class="br0">&#41;</span>;<br />
<span class="re0">$sql</span>=<span class="st0">&quot;SELECT * FROM ajaxsql WHERE id = '&quot;</span>.<span class="re0">$q</span>.<span class="st0">&quot;'&quot;</span>;<br />
<span class="re0">$result</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
<p>Najpierw wyslaliśmy MIME informujący, że kod pobierany przez Ajax w przeglądarce będzie typu HTML, a kodowanie tekstu będzie w iso-8859-2. Następnie połączyliśmy się z bazą danych, wybraliśmy rekordy z tabeli i zapisaliśmy do zmiennej $result. Co robimy dalej?</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;(&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'id'</span><span class="br0">&#93;</span> . <span class="st0">&quot;) &quot;</span>;<br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'imie'</span><span class="br0">&#93;</span> . <span class="st0">&quot; &quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'nazwisko'</span><span class="br0">&#93;</span> . <span class="st0">&quot;<br />
&quot;</span>;<br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;strong&gt;Miasto: &lt;/strong&gt;&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'miasto'</span><span class="br0">&#93;</span> . <span class="st0">&quot;&quot;</span>;<br />
<span class="br0">&#125;</span><br />
<a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$con</span><span class="br0">&#41;</span>;</div>
<p>Ponownie używamy pętli while do wyświetlenia pobranych rekordów z tabeli. Tym razem w instrukcji while ładnie wyświetlamy wszystkie informacje na temat osoby znajdującej się w stworzonej już przez nas tabeli '<code>ajaxsql</code>'. Potem zamykamy połączenie z bazą danych.</p>
<p>Całość tego pliku przedstawiam poniżej:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
<span class="re0">$q</span>=<span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&quot;q&quot;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$con</span> = <a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">'host'</span>, <span class="st0">'user'</span>, <span class="st0">'hasło'</span><span class="br0">&#41;</span>;<br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$con</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">'Could not connect: '</span> . <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span><br />
<a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-type: text/html; charset=iso-8859-2&quot;</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">&quot;baza&quot;</span>, <span class="re0">$con</span><span class="br0">&#41;</span>;<br />
<span class="re0">$sql</span>=<span class="st0">&quot;SELECT * FROM ajaxsql WHERE id = '&quot;</span>.<span class="re0">$q</span>.<span class="st0">&quot;'&quot;</span>;<br />
<span class="re0">$result</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span>;</p>
<p>
<span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$row</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp;<span class="br0">&#123;</span><br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;(&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'id'</span><span class="br0">&#93;</span> . <span class="st0">&quot;) &quot;</span>;<br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'imie'</span><span class="br0">&#93;</span> . <span class="st0">&quot; &quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'nazwisko'</span><span class="br0">&#93;</span> . <span class="st0">&quot;<br />
&quot;</span>;<br />
&nbsp;<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;strong&gt;Miasto: &lt;/strong&gt;&quot;</span> . <span class="re0">$row</span><span class="br0">&#91;</span><span class="st0">'miasto'</span><span class="br0">&#93;</span> . <span class="st0">&quot;&quot;</span>;<br />
<span class="br0">&#125;</span></p>
<p><a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$con</span><span class="br0">&#41;</span>;<br />
<span class="kw2">?&gt;</span></div>
<p>To już koniec naszego tutoriala. Przedstawiłem Wam metodę dynamicznego pobierania informacji z tabeli w bazie danych MySQL. Można to dowolnie dostosowywac do swoich projektów.<br />
Wersję do pobrania znajdziecie <a href="http://majareq.viawww.pl/demos/ajaxsql.zip">tutaj</a>.</p>
<p><em>MajareQ</em></p>
<img src="http://vivee.info/?ak_action=api_record_view&id=338&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F01%2F01%2Fpobieranie-danych-z-mysql-w-tle%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/01/01/pobieranie-danych-z-mysql-w-tle/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

