<?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>neontrauma.de &#124; Tutorials &#38; Webdesign &#187; JavaScript</title>
	<atom:link href="http://neontrauma.de/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://neontrauma.de</link>
	<description>ein Magazin zum Thema Webdesign</description>
	<lastBuildDate>Wed, 04 Aug 2010 07:34:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SmartSlider: Inhalte auf- und zuklappen</title>
		<link>http://neontrauma.de/javascript/smartslider-inhalte-auf-und-zuklappen.php</link>
		<comments>http://neontrauma.de/javascript/smartslider-inhalte-auf-und-zuklappen.php#comments</comments>
		<pubDate>Wed, 11 Feb 2009 12:12:48 +0000</pubDate>
		<dc:creator>neontrauma</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[aufklappen]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[SmartSlider]]></category>

		<guid isPermaLink="false">http://neontrauma.de/?p=1151</guid>
		<description><![CDATA[Textinhalte mit Hilfe von mootools über einen Link auf- und wieder zuklappen lassen...]]></description>
			<content:encoded><![CDATA[<p>Ani hat sich Wunschbuch erkundigt, wie man Textinhalte über einen Link auf- und wieder zuklappen kann.</p>
<p>Wie meistens im Leben gibt es dafür verschiedene Lösungswege. :o)<br />
Ich persönlich finde den Einsatz des mootools-Framework hier sehr schick.</p>
<h3>SmartSlider</h3>
<p>Ralf Hortt von <a title="horttcore.de" href="http://horttcore.de">horttcore.de</a> hat, basierend auf mootools, das Skript SmartSlider entwickelt, das ihr hier herunterladen könnt: <a title="Smartslider" href="http://horttcore.de/2008/01/29/smartslider-v10/">SmartSlider @ horttcore.de</a></p>
<p>Das Ganze funktioniert denkbar einfach: ihr ladet die Datei <em>mootools.js</em> (die ihr <a title="mootools" href="http://www.mootools.net/download">hier</a> findet) zusammen mit der <em>smartslider.js</em> auf euren Webspace.<br />
Diese beiden Dateien müssen nun im Head-Bereich eurer Webseite eingebunden werden:</p>
<p><code>&lt;script type="text/javascript" src="http://domain.de/mootools.js"&gt;&lt;/script&gt;</code><br />
<code>&lt;script type="text/javascript" src="http://domain.de/smartslider.js"&gt;&lt;/script&gt;</code></p>
<p>Um euren Inhalt aufklappbar zu machen, braucht ihr zweierlei: den Link und den aufzuklappenden Inhalt.<br />
Der Link fungiert als Anker, das heißt, ihr setzt als Linkziel den Namen der ID des Inhaltselements mit einem # vorne dran. Wichtig ist, dass der Link das Klasse <em>slider</em> angehört.</p>
<p><code>&lt;a href="#aufklappen" class="slider"&gt;klick mich&lt;/a&gt;</code></p>
<p><code>&lt;p id="aufklappen"&gt;Ich bin der Inhalt...&lt;/p&gt;</code></p>
<p>Ihr könnt beliebig viele dieser aufklappbaren Texte auf eurer Seite unterbringen, allerdings darf jede ID nur einmal vergeben werden.</p>
<p>Falls eure Besucher JavaScript abgeschaltet haben, wird ihnen der ansonsten zunächst verborgene Inhalt ganz normal angezeigt.</p>
<h3>SmartSlider für WordPress</h3>
<p>Für WordPress-Nutzer gibt es SmartSlider sogar eigens <a title="Smartslider-Plugin" href="http://wordpress.org/extend/plugins/smartslider/">als Plugin zum Herunterladen</a>.<br />
Wie jedes andere Plugin auch wird der Ordner <em>smartslider</em> in das Verzeichnis <em>wp-content/plugins</em> hochgeladen und das Plugin anschließend aktiviert.<br />
Die aufzuklappenden Textbereiche kennzeichnet ihr wie oben beschrieben (dazu müsst ihr beim Erstellen eines Artikels oder einer Seite allerdings die HTML-Ansicht nutzen und nicht den visuellen Editor!)</p>
<p>Wichtig: mootools funktioniert nicht, wenn ihr bereits ein anderes Framework wie etwa jQuery verwendet!</p>
]]></content:encoded>
			<wfw:commentRss>http://neontrauma.de/javascript/smartslider-inhalte-auf-und-zuklappen.php/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Tabs dynamisch nachladen</title>
		<link>http://neontrauma.de/javascript/tabs-dynamisch-nachladen.php</link>
		<comments>http://neontrauma.de/javascript/tabs-dynamisch-nachladen.php#comments</comments>
		<pubDate>Wed, 15 Oct 2008 08:27:24 +0000</pubDate>
		<dc:creator>neontrauma</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://neontrauma.de/?p=734</guid>
		<description><![CDATA[Zwischen mehreren Registerkarten blättern, ohne gleich die gesamte Webseite neu laden zu müssen...]]></description>
			<content:encoded><![CDATA[<p>In diesem Tutorial geht es darum, mehrere Tabs anzulegen, zwischen denen man blättern kann und deren jeweiliger Inhalt dabei dynamisch nachgeladen wird (blöd zu beschreiben; ich meine das, was ihr auf der Startseite von neontrauma.de seht :-) ).<br />
Der Einfachheit halber werde ich das vorgehen anhand eines WordPress-Themes beschreiben, es funktioniert aber natürlich mit jeder beliebigen Seite.</p>
<h3>wie geht&#8217;s &amp; wer hat&#8217;s erfunden?</h3>
<p>Das Zaubermittel heißt JavaScript, genauer gesagt: AJAX und jQuery.<br />
Klaus Hartl vom <a title="stilbuero.de" href="http://stilbuero.de">Stilbüro</a> hat diese Tab-Funktion entwickelt, die mittlerweile in der Version 3 vorliegt und über eine recht umfassende (allerdings englischsprachige) Dokumentation verfügt.</p>
<h3>die benötigten JavaScript-Dateien</h3>
<p>Zunächst einmal benötigen wir natürlich jQuery selber &#8211; herunterladen könnt ihr euch die aktuelle Version 1.2.6 <a title="jQuery" href="http://docs.jquery.com/Downloading_jQuery">hier</a>. Aus dem breitgefächerten Angebot der jQuery UI-Bibliothek kommen dann noch die <em>ui.core.js</em> sowie die <em>ui.tabs.js</em> hinzu. Herunterladen könnt ihr euch diese <a title="jQuery-Bibliothek" href="http://ui.jquery.com/download_builder/">hier</a>, indem ihr in der Auswahlliste die beiden entsprechenden Häkchen setzt.<br />
Diese drei Dateien ladet ihr auf euren Server und bindet sie im <span class="mono">head</span>-Bereich eurer Seite ein, damit euch die Scripte zur Verfügung stehen:<br />
<code>&lt;script type="text/javascript" src="http://domain.de/jquery-1.2.6.js"&gt;&lt;/script&gt;<br />
</code><code>&lt;script type="text/javascript" src="http://domain.de/ui.core.js"&gt;&lt;/script&gt;</code><br />
<code> &lt;script type="text/javascript" src="http://domain.de/ui.tabs.js"&gt;&lt;/script&gt;</code><br />
Je nachdem, wie ihr euren Download gepackt habt, kann es sein, dass die <em>ui.core.js</em> und die <em>ui.tabs.js</em> in einem Package liegen &#8211; dann müsst ihr eben dieses Package einbinden.<br />
(Unter WordPress bietet es sich an, im Ordner des jeweiligen Themes ein Verzeichnis namens <em>js</em> anzulegen und dort alle JavaScript-Dateien abzulegen &#8211; aber das kann man natürlich handhaben, wie man will.)<br />
Dazu kommt der Aufruf des Scripts, den ihr ebenfalls in den head-Bereich notiert:<br />
<code>&lt;script type="text/javascript"&gt;<br />
$(function() {<br />
$('#container ul').tabs({ fxFade: true, fxSpeed: 'fast' });</code></p>
<p><code>$('#container2 ul').tabs({ event: 'mouseover' }).find('a').click(function() {<br />
return false;<br />
});<br />
});<br />
&lt;/script&gt;</code></p>
<h3>die Navigation</h3>
<p>Als nächstes legen wir die Navigation an, also die einzelnen Reiter, über die man die Tabs ansteuern kann.<br />
Hier müsst ihr euch entscheiden: wollt ihr die Inhalte der Tabs alle zusammen in einer Datei speichern, oder soll in jedem Tab eine eigenständige Datei dynamisch nachgeladen werden?<br />
Je nachdem unterscheidet sich das Aussehen der Links ein wenig. Das Grundgerüst bleibt jedoch gleich &#8211; eine ungeordnete Liste mit den einzelnen Reitern als Listenpunkt:<br />
<code><br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a class="ui-tabs" href="#erster-tab"&gt;erster Tab&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a class="ui-tabs" href="#zweiter-tab"&gt;zweiter Tab&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a class="ui-tabs" href="#dritter-tab"&gt;dritter Tab&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</code></p>
<p>Dies ist der Code für diejenige Variante, in der der Inhalt sämtlicher Tabs in der gleichen Datei steht und über Anker angesteuert wird. Wenn externe Dateien geladen werden sollen, ersetzt ihr das <span class="mono">#erster-tab</span> durch <span class="mono">erster-tab.html</span> (je nachdem, wo die Datei liegt und wie sie heißt, müsst ihr den Pfad natürlich anpassen).<br />
Die Navigation sowie den Inhalt der Tabs (zu dem wir im nächsten Abschnitt kommen) packt ihr zusammen in ein Div und gebt ihm eine ID, beispielsweise container. Wichtig ist, dass diese ID dem Namen entspricht, mit dem die Liste in dem kleinen Script oben angesprochen wird.</p>
<h3>der Inhalt der Tabs</h3>
<p>In diesem Beispiel befinden sich die Inhalte aller Tabs in einer einzigen Datei (der gleichen, in der auch die obige Navigation liegt). Jeder Tab wird in ein Div gepackt &#8211; wichtig ist, dass die ID des Divs mit dem Linkziel der Navigation übereinstimmt.</p>
<p><code>&lt;div id="erster-tab"&gt;<br />
&lt;h3&gt;erster Tab&lt;/h3&gt;<br />
&lt;p&gt;Inhalt des ersten Tabs...&lt;/p&gt;<br />
&lt;/div&gt;</code></p>
<p><code>&lt;div id="zweiter-tab"&gt;<br />
&lt;h3&gt;zweiter Tab&lt;/h3&gt;<br />
&lt;p&gt;Inhalt des zweiten Tabs...&lt;/p&gt;<br />
&lt;/div&gt;</code></p>
<p><code>&lt;div id="dritter-tab"&gt;<br />
&lt;h3&gt;dritter Tab&lt;/h3&gt;<br />
&lt;p&gt;Inhalt des dritten Tabs...&lt;/p&gt;<br />
&lt;/div&gt;</code></p>
<p>Diese Datei, also die Navigation mitsamt der Tab-Inhalte, speichert ihr als <em>tabs.php</em> ab und ladet sie in das Theme-Verzeichnis (also dahin, wo auch die <em>index.php</em>, <em>header.php</em> usw. liegen).</p>
<p>Jetzt wird die <em>tabs.php</em> an der gewünschten Stelle eingebunden. Im Fall von neontrauma.de ist dies in der <em>index.php</em> der Fall, da die Tabs nur auf der Startseite erscheinen sollen, aber selbstverständlich könntet ihr sie auch bereits in der <em>header.php</em> einbinden oder in jeder anderen beliebigen Datei. Wenn ihr WordPress nutzt, könnt ihr den Pfad zur Datei so angeben:<br />
<code>&lt;?php include(TEMPLATEPATH . '/tabs.php'); ?&gt;</code><br />
Theoretisch müsst ihr den Code natürlich nicht auslagern, in Hinblick auf die Übersichtlichkeit eurer Dateien bietet sich das aber an.</p>
<h3>das Stylesheet</h3>
<p>Last but not least müsst ihr im Stylesheet eine Klasse hinzfügen, damit die Tabs funktionieren:<br />
<code>.ui-tabs-hide {<br />
display: none;<br />
}</code></p>
<p>Das Grundgerüst der Tab-Navigation steht nun &#8211; wenngleich die Links bis jetzt natürlich nicht wie Tabs aussehen, sondern einfache Listenpunkte sind. Auf das weitere Styling werde ich an dieser Stelle allerdings nicht eingehen, sondern verweise auf ein entsprechendes Tutorial, was ich vor einiger Zeit verfasst habe: <a title="Menue im Block-Style" href="http://neontrauma.de/xhtml-css/menue-im-block-style.php">Menue im Block-Style</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://neontrauma.de/javascript/tabs-dynamisch-nachladen.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XHTML 1.1 und das target-Attribut</title>
		<link>http://neontrauma.de/javascript/xhtml-11-und-das-target-attribut.php</link>
		<comments>http://neontrauma.de/javascript/xhtml-11-und-das-target-attribut.php#comments</comments>
		<pubDate>Fri, 25 Apr 2008 06:35:35 +0000</pubDate>
		<dc:creator>neontrauma</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XHTML & CSS]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://neontrauma.de/?p=158</guid>
		<description><![CDATA[Von HTML und XHTML 1.0 Transitional her ist man es gewohnt, bei Hyperlinks das Linkziel anzugeben: soll sich der Link in einem neuen Fenster öffnen oder im gleichen? Dies realisierte man über das target-Attribut (in diesem Beispiel öffnet sich der Link in einem neuen Browserfenster): &#60;a href="link.html" target="_blank"&#62;Link&#60;/a&#62; Wer sich aber nun zum Ziel gesetzt [...]]]></description>
			<content:encoded><![CDATA[<p>Von HTML und XHTML 1.0 Transitional her ist man es gewohnt, bei Hyperlinks das Linkziel anzugeben: soll sich der Link in einem neuen Fenster öffnen oder im gleichen?</p>
<p>Dies realisierte man über das <span class="mono">target</span>-Attribut (in diesem Beispiel öffnet sich der Link in einem neuen Browserfenster):<br />
<code>&lt;a href="link.html" target="_blank"&gt;Link&lt;/a&gt;</code></p>
<p>Wer sich aber nun zum Ziel gesetzt hat, valides XHTML 1.0 Strict oder XHTML 1.1 zu coden, dem meldet der Validator einen Fehler, wenn man mit <span class="mono">target</span> arbeitet: in diesen beiden Versionen wurde dieses Attribut bereits abgeschafft.</p>
<h3>der Grund</h3>
<p>&#8230;hierfür ist folgender:<br />
Ursprünglich stammt die Angabe des <span class="mono">targets</span> aus den Zeiten der Framesets (wir erinnern uns, gaaanz schlechtes Coding von Anno Pief ;-) ). Da machte es Sinn, Links zum Beispiel auch in übergeordneten  Frames öffnen zu lassen. Im Zeitalter der Divs ist dies überflüssig geworden.</p>
<p>Zudem geht man dazu über, dem User die größtmögliche Usability anzubieten &#8211; dazu gehört auch, dass er selber entscheiden kann, wie sich ein Link öffnen soll, ob im selben Fenster oder in einem neuen Fenster/Tab.</p>
<h3>trotzdem in neuem Fenster?</h3>
<p>Mit etwas JavaScript lässt es sich realisieren, dass sich Links in einem neuen Fenster öffnen und das Coding trotzdem valides XHTML 1.1 ist. Voraussetzung dafür, dass dies funktioniert, ist natürlich, dass der User in seinem Browser JavaScript aktiviert hat. Hat er dies nicht, öffnet sich der Link einfach im gleichen Fenster.</p>
<p>Dem Link fügt man das <span class="mono">onclick</span>-Attribut hinzu:</p>
<p><code>onclick="window.open('http://linkziel.de'); return false"</code></p>
<p>Damit das Coding valide bleibt, muss beim Verwenden von JavaScript die Scriptsprache im Header definiert werden:<br />
<code>&lt;meta http-equiv="Content-Script-Type" content="text/javascript" /&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://neontrauma.de/javascript/xhtml-11-und-das-target-attribut.php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>jQuery nutzen</title>
		<link>http://neontrauma.de/javascript/jquery-nutzen.php</link>
		<comments>http://neontrauma.de/javascript/jquery-nutzen.php#comments</comments>
		<pubDate>Thu, 28 Feb 2008 12:37:32 +0000</pubDate>
		<dc:creator>neontrauma</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://neontrauma.de/wordpress/tutorials/wordpress/jquery-nutzen/</guid>
		<description><![CDATA[Seit der Version 2.2 setzt WordPress auf Ajax und hat daher standardmäßig das jQuery-Framework integriert. Dies ermöglicht schicke, javascript-basierte Effekte, die zumeist sehr schlank gehalten sind und somit keine großen Ladezeiten verursachen. Von Hause aus kommt jQuery nur im Adminbereich zum Einsatz &#8211; damit du das jQuery-Framework auch in deinem Theme nutzen kannst, musst du [...]]]></description>
			<content:encoded><![CDATA[<p>Seit der Version 2.2 setzt WordPress auf Ajax und hat daher standardmäßig das jQuery-Framework integriert.<br />
Dies ermöglicht schicke, javascript-basierte Effekte, die zumeist sehr schlank gehalten sind und somit keine großen Ladezeiten verursachen.</p>
<p>Von Hause aus kommt jQuery nur im Adminbereich zum Einsatz &#8211; damit du das jQuery-Framework auch in deinem Theme nutzen kannst, musst du die entsprechende Datei einbinden.<br />
Diese liegt im Verzeichnis <em>wp-includes/js/jquery/jquery.js</em>.</p>
<p>Einbinden kannst du diese auf verschiedene Weise &#8211; es bietet sich jedoch an, sie so anzusprechen, wie WordPress es mit allen Plugins tut. So brauchst du keine Pfade anzupassen, falls du einmal etwas an deiner Verzeichnisstruktur änderst.</p>
<p>In der <em>header.php</em> deines Themes setzt du den folgenden Code in den <span class="mono">head</span>-Bereich:</p>
<p><code>&lt;?php wp_enqueue_script('jquery');?&gt;</code></p>
<p>Wichtig ist, dass er <em>vor</em> dieser Zeile hier steht:<br />
<code>&lt;?php wp_head(); ?&gt;</code><br />
Viel Spaß damit!</p>
]]></content:encoded>
			<wfw:commentRss>http://neontrauma.de/javascript/jquery-nutzen.php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Alert-Fenster</title>
		<link>http://neontrauma.de/javascript/alert-fenster.php</link>
		<comments>http://neontrauma.de/javascript/alert-fenster.php#comments</comments>
		<pubDate>Sat, 08 Dec 2007 14:36:30 +0000</pubDate>
		<dc:creator>neontrauma</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://neontrauma.de/wordpress/javascript/alert-fenster/</guid>
		<description><![CDATA[Mit Sicherheit ist jeder schon einmal über ein sogenanntes Alert-Fenster gestolpert: Man klickt irgendwo, und schon poppt ein kleines Fensterchen auf, was einem irgendetwas mitteilt oder zum Beispiel zur Eingabe eines Passwortes auffordert. Über den Sinn und den Unsinn solcher Alerts lässt sich streiten, insbesondere da sie gerade in der Vergangenheit desöfteren herzlich nervig eingesetzt [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Sicherheit ist jeder schon einmal über ein sogenanntes Alert-Fenster gestolpert:<br />
Man klickt irgendwo, und schon poppt ein kleines Fensterchen auf, was einem irgendetwas mitteilt oder zum Beispiel zur Eingabe eines Passwortes auffordert.</p>
<p>Über den Sinn und den Unsinn solcher Alerts lässt sich streiten, insbesondere da sie gerade in der Vergangenheit desöfteren herzlich nervig eingesetzt wurden (nichts ist toller, als wenn man einen Link in einem neuen Tab öffnen will, dazu auf den Link rechtsklickt und dann ein Fensterchen aufpoppt: „Rechtsklick wurde gesperrt!“ &#8211; und wenn man das Ding dann entnervt weggeklickt hatte, schickte der findige Webmaster noch ein zweites Fensterchen hinterher: „Ätsch!“ &#8230;</p>
<h3>der Code</h3>
<p>Um solch ein Fenster aufpoppen zu lassen, benötigen wir die JavaScript-Funktion <span class="mono">alert()</span>.</p>
<p><code>&lt;script type="text/javascript"&gt;<br />
alert("Hello World!"); &lt;/script&gt;</code></p>
<p>Anstelle von „Hello World!“ setzt du natürlich den gewünschten Text ein.</p>
<h3>und wann?</h3>
<p>Setzt man den obigen Code im Quelltext gleich hinter das öffnende Body-Tag (<span class="mono">&lt;body&gt;</span>), so poppt das Fenster beim Öffnen der Seite auf.</p>
<p>Eine andere Möglichkeit wäre es, dass sich das Fensterchen beim Anklicken eines Links öffnet.<br />
Dazu brauchen wir einen sogenannten Event-Handler &#8211; also eine Anweisung, die sagt, dass bei einer bestimmten Aktion (zum Beispiel <span class="mono">onclick</span> = beim Klicken) etwas passieren soll.</p>
<p><code>&lt;a href="..." target="..." title="..." onclick="alert('Hello World!')"&gt; ... &lt;/a&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://neontrauma.de/javascript/alert-fenster.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
