<?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>Pique - standardy sieciowe &#187; lightbox</title>
	<atom:link href="http://pique.pl/tag/lightbox/feed/" rel="self" type="application/rss+xml" />
	<link>http://pique.pl</link>
	<description>Krzysztof Danek o standardach sieciowych, PHP, JavaScript i całej reszcie</description>
	<lastBuildDate>Thu, 24 Jun 2010 20:15:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Smooth Slideshow autorstwa JonDesign</title>
		<link>http://pique.pl/2006/11/29/smooth-slideshow-autorstwa-jondesign/</link>
		<comments>http://pique.pl/2006/11/29/smooth-slideshow-autorstwa-jondesign/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 22:57:11 +0000</pubDate>
		<dc:creator>Krzysztof Danek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[galerie]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[slideshow]]></category>

		<guid isPermaLink="false">http://pique.pl/2006/11/29/smooth-slideshow-autorstwa-jondesign/</guid>
		<description><![CDATA[Krótki opis pokazu slajdów <a href="http://smoothslideshow.jondesign.net/index.html">Smooth Slideshow</a>, którego autorem jest <a href="http://www.jondesign.net/">Jonathan Schemoul</a>. <a href="http://pique.pl/2006/11/29/smooth-slideshow-autorstwa-jondesign/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Można odnieść wrażenie, że nie zajmuję się niczym innym poza galeriami i pokazami slajdów, ale trafiłem na kolejne świetne i godne zainteresowania rozwiązanie.</p>
<p><a href="http://smoothslideshow.jondesign.net/index.html">Smooth Slideshow</a> to darmowa biblioteka, autorem której jest <a href="http://www.jondesign.net/">Jonathan Schemoul</a>. Kilka słów podsumowania:</p>
<ol>
<li>pozwala na wyświetlanie zdjęć w trybach zarówno ręcznym jak i automatycznym,</li>
<li>jest oparta o framework <a href="http://mootools.net/">mootools</a>,</li>
<li>skrypty ważą razem około 22kB.</li>
</ol>
<p>I jeszcze dwa linki bezpośrednio do przykładów:</p>
<ul>
<li><a href="http://smoothslideshow.jondesign.net/timed.html">Wersja automatyczna</a></li>
<li><a href="http://smoothslideshow.jondesign.net/showcase.html">Wersja działająca po kliknięciu</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pique.pl/2006/11/29/smooth-slideshow-autorstwa-jondesign/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TripTracker slideshow &#8211; Lightbox na sterydach</title>
		<link>http://pique.pl/2006/11/26/triptracker-slideshow-lightbox-na-sterydach/</link>
		<comments>http://pique.pl/2006/11/26/triptracker-slideshow-lightbox-na-sterydach/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 11:19:18 +0000</pubDate>
		<dc:creator>Krzysztof Danek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[thickbox]]></category>

		<guid isPermaLink="false">http://pique.pl/2006/11/26/triptracker-slideshow-lightbox-na-sterydach/</guid>
		<description><![CDATA[Krótkie skrypty pokazujące, jak podłączyć galerię <a href="http://slideshow.triptracker.net/">TripTracker Slideshow</a> nie niszcząc jednocześnie dopieszczonego HTML. <a href="http://pique.pl/2006/11/26/triptracker-slideshow-lightbox-na-sterydach/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>W jednym z ostatnich projektów klient zażyczył sobie galerii zbliżonej w działaniu do Lightboxa, ale dodatkowo wzbogaconej o funkcję pokazu slajdów. Zgodnie z podstawową zasadą leniwego programisty zacząłem od przeszukania zasobów Internetu w celu znalezienia gotowego rozwiązania. W krótkim czasie trafiłem tutaj: <a href="http://slideshow.triptracker.net/">Revamped Slideshow</a>, na blogu <a href="http://blog.triptracker.net/">TripTracker</a>. </p>
<p>Klient wyraził swoją aprobatę, więc pozostało jedynie zaimplementować to ustrojstwo na stronie, a właściwie zastąpić obecnego już Thickboxa. Niestety &ndash; oferowany przez autorów sposób integracji jest dość nieszczęśliwy i całkowicie niezgodny z zasadami <a href="http://www.onlinetools.org/articles/unobtrusivejavascript/" lang="en">unobtrusive javascript</a> [ciągle nie znam dobrego polskiego tłumaczenia]. Dlatego przygotowałem krótki skrypt, który załatwia to w bardziej elegancki sposób.</p>
<h2>Wersja zależna od jQuery</h2>
<pre><code>var uoSlideshow = {
	CLASS_NAME : 'slideshow',
	viewer : new PhotoViewer(),
	initialize : function(){
		$('a.'+uoSlideshow.CLASS_NAME).each(function(i){
			uoSlideshow.viewer.add(this.href);
			$(this).click(function(e){ e.preventDefault(); uoSlideshow.viewer.show(i)});
		});
	}
}

$(document).ready(uoSlideshow.initialize);</code></pre>
<p><a href="/sandbox/uoSlideshow/js/uoSlideshow-jquery.js">Wersja w osobnym pliku</a> | <a href="/sandbox/uoSlideshow/with-jquery.html">Przykład</a></p>
<p>Powyższe skrypt wymaga podłączonej biblioteki <a href="http://www.jquery.com/">jQuery</a>. Aby wszystko działało poprawnie powyższy plik powinnien być podłączony <strong>po</strong> plikach jQuery i właściwego slideshowa, czyli np w ten sposób:</p>
<pre><code>&lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/slide.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/uoSlideshow-jquery.js"&gt;&lt;/script&gt;</code></pre>
<h2>Wersja niezależna od zewnętrznych bibliotek</h2>
<p>Napisałem też wersję, która może działać samodzielnie. Do przypisywania zdarzeń wykorzystałem funkcję <code>addEvent()</code> autorstwa <a href="http://ejohn.org/projects/flexible-javascript-events/">Johna Resiga</a>.</p>
<pre><code>function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function stopDefault(e){
	if (e.preventDefault) {
		e.preventDefault(); // The W3C DOM way
	} else {
		e.returnValue = false; // The IE way
	}
}

var uoSlideshow = {
	CLASS_NAME : 'slideshow',
	viewer : new PhotoViewer(),
	initialize : function(){
		for(var i=0; (a = document.getElementsByTagName('a')[i]);i++ ){
			if (uoSlideshow.isSlide(a)) {
				a.index = i;
				uoSlideshow.viewer.add(a.href);
				addEvent(a,'click',function(e){ stopDefault(e); uoSlideshow.viewer.show(this.index);  });
			}
		}
	},
	isSlide : function(obj)	{
		if (obj &#038;&#038; obj.className){
			var cn = obj.className.split(" ");
			var i = cn.length-1;
			while (c = cn[i]) {
				if (c == uoSlideshow.CLASS_NAME){
					return true;
				}
				i--;
			}
		}
		return false;
	}
}

addEvent(window,'load',uoSlideshow.initialize);</code></pre>
<p><a href="/sandbox/uoSlideshow/js/uoSlideshow-standalone.js">Wersja w osobnym pliku</a>  | <a href="/sandbox/uoSlideshow/standalone.html">Przykład</a></p>
<p>Tutaj implementacja ogranicza się do wklejenia powyższego kodu w nagłówku:</p>
<pre><code>&lt;script type="text/javascript" src="js/slide.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/uoSlideshow-standalone.js"&gt;&lt;/script&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://pique.pl/2006/11/26/triptracker-slideshow-lightbox-na-sterydach/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Litebox &#8211; udane połączenie wyglądu z rozmiarem skryptu</title>
		<link>http://pique.pl/2006/11/26/litebox-czyli-odchudzony-lightbox2/</link>
		<comments>http://pique.pl/2006/11/26/litebox-czyli-odchudzony-lightbox2/#comments</comments>
		<pubDate>Sat, 25 Nov 2006 22:12:12 +0000</pubDate>
		<dc:creator>Krzysztof Danek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[litebox]]></category>

		<guid isPermaLink="false">http://pique.pl/2006/11/26/litebox-czyli-odchudzony-lightbox2/</guid>
		<description><![CDATA[Pojawiła się odchudzona wersja skryptu Lightbox2.0, o rozmiarze nie przekraczającym 30kB. <a href="http://pique.pl/2006/11/26/litebox-czyli-odchudzony-lightbox2/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://doknowevil.net/litebox/">Litebox</a> to kolejna odmiana bardzo popularnego skryptu <a href="http://www.huddletogether.com/projects/lightbox/">Lightbox</a>, służącego do wyświetlania obrazków na osobnej warstwie nad resztą strony. Ta wersja jest bardzo udaną przeróbkę skryptu <a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox 2.0</a>. Jak sama nazwa wskazuje &#8211; główny nacisk położono na redukcję rozmiaru podłączanych plików. </p>
<p>Autorzy zamienili rozrośnięte biblioteki <a href="http://prototype.conio.net/">Prototype</a> i <a href="http://script.aculo.us/">Script.aculo.us</a> leciutką biblioteką <a href="http://moofx.mad4milk.net/">moo.fx</a> w połączeniu z prototype.lite (czyli specjalnie odchudzoną wersją Prototype, stworzoną specjalnie na potrzeby moo.fx). Dzięki temu udało się uzyskać rozmiar plików JavaScript poniżej 30kB, co według mnie jest już jak najbardziej dopuszczalne.</p>
<p>Szczerze polecam zapoznanie się z tym rozwiązaniem, gdyż teraz nie tylko dobrze wygląda, banalnie się integruje, ale również mało waży.</p>
]]></content:encoded>
			<wfw:commentRss>http://pique.pl/2006/11/26/litebox-czyli-odchudzony-lightbox2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thickbox 2.0</title>
		<link>http://pique.pl/2006/08/09/thickbox-20/</link>
		<comments>http://pique.pl/2006/08/09/thickbox-20/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 20:09:32 +0000</pubDate>
		<dc:creator>Krzysztof Danek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[thickbox]]></category>

		<guid isPermaLink="false">http://pique.pl/2006/08/09/thickbox-20/</guid>
		<description><![CDATA[Pojawiła się nowa wersja skryptu <a href="http://jquery.com/demo/thickbox/">Thickbox</a>. <a href="http://pique.pl/2006/08/09/thickbox-20/">Czytaj dalej <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pojawiła się nowa wersja skryptu <a href="http://jquery.com/demo/thickbox/">Thickbox</a> do wyświetlania &ldquo;okienek modalnych&rdquo; i galerii na stronach <abbr title="World Wide Web">WWW</abbr>. Dodano możliwość przeglądania galerii obrazków w postaci pokazu slajdów oraz wyświetlanie zawartości wewnątrz IFrame (przydatne podczas otwierania zewnętrznych stron). </p>
<p>Mimo, że od czasu pierwotnego <a href="http://www.huddletogether.com/projects/lightbox/">Lightboxa</a> powstało kilka lub nawet kilkanaście jego odmian, ja od pewnego czasu korzystam właśnie z Thickboxa. Mam ku temu przynajmniej dwa powody:</p>
<ol>
<li>Jest oparty na rewelacyjnym frameworku <a href="http://www.jquery.com/">jQuery</a>, który przydaje mi się praktycznie w każdym nowym projekcie, więc dodanie samego skryptu Thickboxa jest bezproblemowe</li>
<li>Całkowity rozmiar po skompresowaniu to około 12k (nie licząc jQuery &#8211; łącznie niecałe 30k). W porównaniu z innymi rozwiązaniami (np. ślicznym, jednakże ciężkawym <a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox2.0</a> &#8211; ponad 130kB) w tej kwestii wypada znakomicie.</li>
</ol>
<p>Lightbox i jego pochodne to wg mnie najbardziej przydatne rozwiązanie, na które udało mi się natknąć w tym roku &ndash; obejrzycie koniecznie, jeśli jeszcze nie znacie.</p>
]]></content:encoded>
			<wfw:commentRss>http://pique.pl/2006/08/09/thickbox-20/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

