<?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>Ajaxschmiede.de &#187; Javascript</title>
	<atom:link href="http://www.ajaxschmiede.de/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxschmiede.de</link>
	<description>rund um das Thema Ajax und Web2.0</description>
	<lastBuildDate>Tue, 29 Jun 2010 17:15:48 +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>Interaktives Datendarstellungsprojekt InfoVis 1.1 erschienen</title>
		<link>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/</link>
		<comments>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 20:00:27 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=460</guid>
		<description><![CDATA[Das Visualisierungprojekt InfoVis bietet wirklich großartige Möglichkeiten um Daten im Internet darzustellen. Vor wenigen Tagen präsentierten die InfoVis-Entwickler die Hauptversion 1.1 ihres Tools. InfoVis ermöglicht das Darstellen interaktiver, dynamischer Graphen und Baumdiagramme. Das hört sich genial an und sieht in der Praxis noch viel besser aus. In der nun vorliegenden Version 1.1. wurde die Bibliothek [...]]]></description>
			<content:encoded><![CDATA[<p>Das Visualisierungprojekt InfoVis bietet wirklich großartige Möglichkeiten um Daten im Internet darzustellen. Vor wenigen Tagen präsentierten die InfoVis-Entwickler die <a class="previewlink" href="http://blog.thejit.org/2009/06/02/the-javascript-infovis-toolkit-11-is-out/">Hauptversion 1.1</a> ihres Tools.</p>
<p>InfoVis ermöglicht das Darstellen interaktiver, dynamischer Graphen und Baumdiagramme. Das hört sich genial an und sieht in der Praxis noch viel besser aus.</p>
<p>In der nun vorliegenden Version 1.1. wurde die Bibliothek in einzelne Module unterteilt um die Wiederverwendbarkeit des Quellcodes zu erhöhen.</p>
<p>Zudem kann man nun mehrfache Instanzen einer jeden Animation erzeugen. Dadurch können nun die Darstellungsformen kombiniert und hintereinander ausgeführt werden.</p>
<p>InfoVis arbeitet mit jeder Javascript-Bibliothek zusammen, egal ob jQuery, Prototype, YUI, MooTools usw, InfoVis lässt sich zusammen mit allen nutzen.</p>
<p>Vorhandere Klasse können leicht verändert und erweiteret werden, außerdem lassen sich eigene Animation erstellen. Die Möglichkeiten sind grenzenlos.</p>
<p>Eine erstklassige <a class="previewlink" href="http://thejit.org/docs/files/Core-js.html">Dokumentation</a> und viele <a class="previewlink" href="http://thejit.org/demos/">Beispiele</a> sind auf der Entwickler-Seite für jedermann zugänglich.</p>
<p><a title="Animiertes Baumdiagramm mit InfoVis" rel="lightbox[infovis]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/infovis.png"><img class="alignnone size-thumbnail wp-image-461" title="Animiertes Baumdiagramm mit InfoVis" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/06/infovis-150x150.png" alt="infovis" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/interaktives-datendarstellungsprojekt-infovis-11-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neuerungen in ImageFlow 1.1</title>
		<link>http://www.ajaxschmiede.de/tools/neuerungen-in-imageflow-11/</link>
		<comments>http://www.ajaxschmiede.de/tools/neuerungen-in-imageflow-11/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 21:30:09 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=404</guid>
		<description><![CDATA[Seit einiger Zeit bietet Finn Rudolph sein Javascript-Tool ImageFlow in Version 1.1 an. Im Vergleich zur Version 1.0.1, über die wir im Oktober des vergangenen Jahres berichtet hatten, ergeben sich nachfolgende Änderungen und Neuerungen: zusätzliche onClick-Option öffnet Bilder in einem neuem Fenster Überarbeitung der Evaluierung der individuellen Einstellungen Pfeiltasten werden nun in allen Browsern unterstützt, [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einiger Zeit bietet Finn Rudolph sein Javascript-Tool <a class="previewlink" href="http://imageflow.finnrudolph.de/">ImageFlow in Version 1.1</a> an.</p>
<p>Im Vergleich zur Version 1.0.1, über die wir im Oktober des vergangenen Jahres <a href="http://www.ajaxschmiede.de/tools/imageflow-101/">berichtet</a> hatten, ergeben sich nachfolgende Änderungen und Neuerungen:</p>
<ul>
<li>zusätzliche onClick-Option öffnet Bilder in einem neuem Fenster</li>
<li>Überarbeitung der Evaluierung der individuellen Einstellungen</li>
<li>Pfeiltasten werden nun in allen Browsern unterstützt, jedoch nur in einer Imageflow-Instanz</li>
<li>zusätzliche Option <em>scrollbarP</em> (Breite des Scrollbalken in Prozent)</li>
<li>Fehlerbehebung in der Option <em>imageFocusM</em> in Firefox und Safari</li>
<li>unload-Fehler im Internet Explorer gefixt</li>
<li>Verbessertes Bild-Resampling im IE7</li>
<li>zusätzliche Option <em>aspectRatio</em> zum Anpassen des Verhältnisses von Höhe und Breite des ImageFlow-Containers</li>
<li>zusätzliche Option zum Festlegen der Bildausmaße: <em>imagesHeight, </em><em>imagesM, </em><em>percentOther</em> und <em>percentLandscape</em></li>
</ul>
<p>Viel Spaß beim Einbauen. Wir helfen euch auch gern dabei!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/tools/neuerungen-in-imageflow-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ExplorerCanvas erfährt IE8-Update</title>
		<link>http://www.ajaxschmiede.de/javascript/explorercanvas-erfaehrt-ie8-update/</link>
		<comments>http://www.ajaxschmiede.de/javascript/explorercanvas-erfaehrt-ie8-update/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 21:01:16 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=400</guid>
		<description><![CDATA[Kurz nach Erscheinen der finalen Internet Explorer 8-Version, stellte Erik Arvidsson im eigenes eingerichteten Explorer Canvas-Blog eine &#8211; längst überfällige &#8211; neue, überarbeitete Version von ExCanvas zum Anzeigen von Canvas-Grafiken mittels VML Im Microsoft-Browser. Auffälligste Neuerung ist die Unterstützung des IE8. Da der neuste Redmonder Sprößling in Sachen VML etliches anderes handhabte als die Vorgänger, [...]]]></description>
			<content:encoded><![CDATA[<p>Kurz nach Erscheinen der <a href="http://www.ajaxschmiede.de/trends/internet-explorer-8-erschienen/">finalen Internet Explorer 8</a>-Version, stellte Erik Arvidsson im eigenes eingerichteten <a class="previewlink" href="http://explorercanvas.blogspot.com/2009/03/new-explorer-canvas-release.html">Explorer Canvas-Blog</a> eine &#8211; längst überfällige &#8211; neue, überarbeitete Version von <a href="http://www.ajaxschmiede.de/category/canvas/">ExCanvas</a> zum Anzeigen von Canvas-Grafiken mittels VML Im Microsoft-Browser.</p>
<p>Auffälligste Neuerung ist die Unterstützung des IE8. Da der neuste Redmonder Sprößling in Sachen VML etliches anderes handhabte als die Vorgänger, hatten die Explorer Canvas-Entwickler etliches zu tun um ihre Bibliothek für den IE8 fit zu bekommen.</p>
<p>Zusätzlich wurden eine Vielzahl Fehler behoben und einige Funktionen erweitert und beschleunigt. Die Änderungsliste fällt umfangreich aus:</p>
<ul>
<li>die Methoden transform und setTransform wurde nach HTML5-Standard integriert</li>
<li>der aktuelle Pfad wird bei strokeRect, fillRect und clearRect nun stets korrekt entfernt</li>
<li>vollständige Unterstützung des IE8 in allen Modi</li>
<li>diverse Fehler in linearen Farbverläufen behoben</li>
<li>neue, erweiterte Methode zur Berechnung der Linienstärke</li>
<li>Rendern von Linien mit einer Stärke kleiner 1px sehen besser aus</li>
<li>stroke-Methode  ignoriert nun nicht mehr lineCap, lineJoin and miterLimit, falls fillStyle-Attribut gesetzt wurde</li>
<li>stroke schließt nun nicht mehr automatisch den Pfad</li>
<li>strokeRect und fillRect schließt nun stets korrekt den Pfad</li>
<li>Einbau des document.createElement(&#8216;canvas&#8217;)-Hacks von Sjoerd Visscher</li>
<li>diverse Speicherlecks wurden gefixt</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/explorercanvas-erfaehrt-ie8-update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JavaScript-Xeyes für jede Homepage</title>
		<link>http://www.ajaxschmiede.de/javascript/javascript-xeyes-fuer-jede-homepage/</link>
		<comments>http://www.ajaxschmiede.de/javascript/javascript-xeyes-fuer-jede-homepage/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 21:21:49 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=383</guid>
		<description><![CDATA[David King hatte wohl zu viel mit Linux zu tun. Anders kann man sich es nicht erklären, dass er aus Spaß an der Freude vor kurzem eine JavaScript-Version des bekannten Tools Xeyes geschrieben hat. Zur Umsetzung nutzte er lediglich einige Grafiken, simples JavaScript und das Anwenden von Trigonometrie in der Praxis. Um das Gimmick im [...]]]></description>
			<content:encoded><![CDATA[<p>David King hatte wohl zu viel mit Linux zu tun. Anders kann man sich es nicht erklären, dass er aus Spaß an der Freude vor kurzem eine <a class="previewlink" href="http://oopstudios.com/ask_me/009_javascript_eyes_that_follow/index.html">JavaScript-Version</a> des bekannten Tools Xeyes geschrieben hat.</p>
<p>Zur Umsetzung nutzte er lediglich einige Grafiken, simples JavaScript und das Anwenden von Trigonometrie in der Praxis.</p>
<p>Um das Gimmick im eigenen Projekt zu nutzen, müssen die Datei eyes.js eingebunden, die Augen-Bilder eingebaut und die Funktion aufgerufen werden. Beispielsweise wie folgt:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot; src=&quot;eyes.js&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;myEye&quot; style=&quot;width: 100px; height: 100px; background: url('white.png') center center no-repeat;&quot;&gt;
&lt;img src=&quot;pupil.png&quot; width=&quot;30&quot; height=&quot;30&quot; /&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
EYES.follow ('myEye');
&lt;/script&gt;
</pre>
<p>Viel Spaß damit!</p>
<p><a rel="lightbox[xeyes]" href="http://www.ajaxschmiede.de/wp-content/uploads/2009/03/followeyes.png"><img class="alignnone size-medium wp-image-382" title="Javascript Eyes That Follow" src="http://www.ajaxschmiede.de/wp-content/uploads/2009/03/followeyes-150x150.png" alt="Javascript Eyes That Follow" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/javascript-xeyes-fuer-jede-homepage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;\v&#8221;==&#8221;v&#8221; &#8211; 9 Zeichen für IE-Erkennung in Javascript</title>
		<link>http://www.ajaxschmiede.de/javascript/vv-9-zeichen-fuer-ie-erkennung-in-javascript/</link>
		<comments>http://www.ajaxschmiede.de/javascript/vv-9-zeichen-fuer-ie-erkennung-in-javascript/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 10:16:07 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=334</guid>
		<description><![CDATA[Auf der Seite Web Reflections wurde kürzlich ein Wettbewerb ausgerufen mit dem Ziel, den von der Zeichenanzahl kürzesten Weg zu finden, den Internet Explorer in Javascript zu identifizieren. Solche Weichen werden im Alltag immer wieder gebraucht, um speziellen Browser Extraanweisungen mitzugeben. Als kürzeste Variante setzte sich der nachfolgender Code durch, der nur im IE (einschließlich [...]]]></description>
			<content:encoded><![CDATA[<p>Auf der Seite <a class="previewlink" href="http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html">Web Reflections</a> wurde kürzlich ein Wettbewerb ausgerufen mit dem Ziel, den von der Zeichenanzahl kürzesten Weg zu finden, den Internet Explorer in Javascript zu identifizieren.</p>
<p>Solche Weichen werden im Alltag immer wieder gebraucht, um speziellen Browser Extraanweisungen mitzugeben.</p>
<p>Als kürzeste Variante setzte sich der nachfolgender Code durch, der nur im IE (einschließlich <img src='http://www.ajaxschmiede.de/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> &#8220;true&#8221; zurückliefert, in allen anderen Browsern &#8220;false&#8221; zurückgibt.</p>
<pre class="brush: jscript;">
IE=&quot;\v&quot;==&quot;v&quot; // true only in IE
</pre>
<p>Damit zog diese Variante an dem zuvor favorisierten, nachfolgenden Code vorbei:</p>
<pre class="brush: jscript;">
try{IE=window=!1}catch(e){IE=!0}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/vv-9-zeichen-fuer-ie-erkennung-in-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Viele Wege führen zu runden Ecken</title>
		<link>http://www.ajaxschmiede.de/jquery/viele-wege-fuehren-zu-runden-ecken/</link>
		<comments>http://www.ajaxschmiede.de/jquery/viele-wege-fuehren-zu-runden-ecken/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 18:23:27 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=320</guid>
		<description><![CDATA[Nachdem ich vor etlichen Wochen mit Liquid Canvas ein Lösung vorgestellt habe, wie man auf einfache Weise im nachhinein seinen Elementen runde Ecken verpassen kann, ließ mich das Thema seitdem nicht mehr los. Bei der Suche noch dem besten und ultimativen Ansatz habe ich etliche interessante Projekte ausprobiert. Vier Lösungsansätze möchte ich hier genauer vorstellen [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich vor etlichen Wochen mit <a href="http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/">Liquid Canvas</a> ein Lösung <a href="http://www.ruzee.com/content/liquid-canvas">vorgestellt</a> habe, wie man auf einfache Weise im nachhinein seinen Elementen runde Ecken verpassen kann, ließ mich das Thema seitdem nicht mehr los.</p>
<p>Bei der Suche noch dem besten und ultimativen Ansatz habe ich etliche interessante Projekte ausprobiert.</p>
<p>Vier Lösungsansätze möchte ich hier genauer vorstellen und auf den Einbau und deren Funktionsweise eingehen. Zusätzliche werde ich noch ein paar Alternativen nennen.</p>
<p><strong>jQuery Round Corner</strong></p>
<p>Avinoam Henig stellte auf seiner <a class="previewlink" href="http://roundcorners.avinoam.info/">Homepage</a> mit jQuery Round Corners ein insgesamt ziemlich ausgereiftes jQuery-Plugin zur Verfügung.</p>
<p>Um es nutzen zu können, benötigt man eine <a href="http://www.ajaxschmiede.de/jquery/jquery-ein-machtiges-und-effizientes-werkzeug/">jQuery</a>-Version ( die aktuelle <a href="http://www.ajaxschmiede.de/jquery/jquery-13-greift-die-konkurrenz-an/">Version 1.3</a>(.1)  funktioniert auch! ) und <a href="http://www.ajaxschmiede.de/canvas/einfuehrung-in-canvas/">Explorer-Canvas</a>. Beide Skripte müssen zusammen mit dem roundCorner-Skript in den Dateikopf eingebunden werden.</p>
<p>Anschließend bettet man beispielsweise solchen Code wie <em>$(&#8216;#roundCorners&#8217;).roundCorners(&#8220;25px&#8221;);</em> ein. RoundCorners erzeugt daraus um (beziehungsweise &#8220;hinter&#8221;) das Element eine Canvas-Grafik mit runden Ecken.</p>
<p>Der Rahmenradius lässt sich für jede Ecke individuell angeben, zum Beispiel <em>.roundCorners(&#8220;25px&#8221;, 0, &#8220;25px&#8221;, 0); </em>. Die erste Angabe steht für die linke obere Ecke, weiter folgen rechts oben, rechts unten und links unten.</p>
<p>Angaben zu Rahmenfarbe und &#8211; dicke werden entsprechend der CSS-Formatierung des betreffenden Elements angewendet.</p>
<p>Das Ergebnis kann sich insgesamt in allen gängigen Browsern sehen lassen.</p>
<p>Was ich an dieser Umsetzung merkwürdig finde, ist die Veränderung der Element- / Rahmengröße beim Überfahren mit der Maus.</p>
<p><strong>LiquidCanvas</strong></p>
<p><a href="http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/">LiquidCanvas</a> von Steffen Rusitschka ist von der Funktionsweise her dem oben genannten RoundCorners sehr ähnlich. Auch hier wird eine Canvas-Grafik verwendet, die das betreffende Element umfasst.</p>
<p>Ebenfalls benötigt LC jQuery und ExCanvas als eingebundene Header-Files. Zusätzlich müssen beide LC-Dateien (<span class="attribute-value">liquid-canvas.js und</span> <span class="attribute-value">liquid-canvas-plugins.js) eingebunden sein.<br />
</span></p>
<p>Im Gegensatz zu anderen Implementieren lässt sich der Radius der runden Ecken hier nur für alle Ecken allgemein angeben. Dafür bietet LiquidCanvas die Möglichkeit, linieare Farbverläufe als Hintergrund-Füllfarbe zu nutzen.</p>
<p>Ein typischer Aufruf sieht so aus: <em>$(&#8220;#liquidCanvas&#8221;).liquidCanvas( &#8220;[fill{color:#000000} border{color:#dd0000; width:5}] =&gt; roundedRect{radius:25}&#8221; );</em>.</p>
<p>Die Farbe und Dicke der Rahmen wird hierbei in dem Aufruf selbst definiert. Das bedeutet aber wiederum, dass man etwaige vorherige Rahmenformatierungen aufheben muss. Dies geht zum Beispiel mit dem Code <em>$(&#8220;#liquidCanvas&#8221;).css(&#8220;border-style&#8221;,&#8221;none&#8221;)</em>.</p>
<p>Bei LiquidCanvas fiel mir auf, dass das Skript die padding-Abstände nicht korrekt übernimmt. Hier muss im nachhinein noch Hand an die Elemente gelegt werden, um die Abstände zu korrigieren.</p>
<p><strong>scale9grid</strong></p>
<p>Einen gänzlich anderen Weg geht &#8220;Gordon&#8221; mit <a class="previewlink" href="http://hempton.com/examples/scale9grid/">scale9grid</a>. Dieses orientiert sich an der traditionellen Methode zum Erstellen individueller Rahmen mittels div-Verschachtelungen.</p>
<p>Um scale9grid zu nutzen, benötigt man zum einen jQuery, das Plugin scale9grid und eine (größere) Rahmengrafik, die das Aussehen des zukünftigen Elementrahmens beinhaltet.</p>
<p>Um das betreffende Element werden acht div&#8217;s angehangen &#8211; für jede Richtung eins &#8211; und mit einem Ausschnitt der Rahmengrafikdatei beklebt.</p>
<p>Besonders interessant finde ich die Möglichkeit mit jQuery die Hintergrundgrafik erst kurz vor dem scale9grid-Aufruf hinzu zufügen.</p>
<p>Dies sieht dann beispielsweise so aus: <em>$(&#8216;#scale9grid&#8217;).css(&#8220;background-image&#8221;,&#8221;url(schwarzrot.png)&#8221;).scale9Grid({top:30,bottom:30,left:30,right:30});</em></p>
<p>Die vier Parameter der Methode bestimmen die Schnittpunkte der Grafik. Der Reihe nach: Abstand von oben, von unten, von links und von rechts.</p>
<p>Was mich an dieser Lösung frustriert, sind die Abweichungen von Breite und padding-Angabe. Diese kann man in der <a href="http://www.ajaxschmiede.de/demos/rundeecken/">Demo</a> gut nachvollziehen.</p>
<p><strong>dd_roundies</strong></p>
<p>Drew Millers Projekt <a class="previewlink" href="http://dillerdesign.com/experiment/DD_roundies/">dd_roundies</a> richtet sich speziell an den Internet Explorer (Version 6). Hierbei nutzt die IE-Vektoren-Auszeichnungssprache VML genutzt, um Vektorgrafiken für den IE zu erzeugen, die runde Ecken darstellen (Anmerkung: Explorer Canvas tut das selbe).</p>
<p>dd_roundies benötigt keine anderen (fremden) Skript-Dateien außer die eigene <code class="box">DD_roundies.js.</code></p>
<p>Mit der Anweisung <em>DD_roundies.addRule(&#8216;#dd_roundies&#8217;, &#8217;25px&#8217;, true); </em>kann beispielsweise ein 25 Pixel breiter Rahmenradius erzeugt werden. Auch hierbei können 4 verschiedene Werte (wie <code>"10px 5px 3px 0"</code> als zweiten Parameter) angegeben werden, um jeder Ecke einen indiviuellen Rahmenradius zuzuweisen.</p>
<p>Millers Skript kann jedoch nicht mit <em>table</em>-Elementen und textarea&#8217;s umgehen. Desweiteren gibt es aktuell noch etliche Probleme mit der Beta der 8. IE-Generation.</p>
<p>Für Browser, die von Haus aus Rahmenradius-Eigenschaften css-seitig ( <em>-moz-border-radius</em>, <em>-webkit-border-radius</em> oder das W3C-konforme <em>border-radius</em> ) unterstützen, gibt es den optionalen dritten Parameter, der diese nativen Eigenschaft nutzt.</p>
<p>Opera bleibt bei dieser Lösung jedoch außen vor. Zudem sehen die nativen runden Ecken im Firefox 2 sehr dürftig aus, so dass man hier andere Techniken wählen sollte.</p>
<p>Ansonsten erzeugt dd_roundies eine pixelgenaue Übereinstimmung zwischen Firefox 3, Webkit/Safari 3 und IE6 /7.</p>
<p>Auf meiner eingerichteten <a href="http://www.ajaxschmiede.de/demos/rundeecken/">Demo-Seite</a> kann jeder sich selbst ein Bild über die erzielten Ergebnisse der einzelnen Lösungen machen.</p>
<p><strong>Alternative (jQuery-) Projekte</strong>, die sich auch mit runden Ecken beschäftigen:</p>
<ul>
<li><a class="previewlink" href="http://blue-anvil.com/jquerycurvycorners/test.html">jQuery Curvy Corners</a></li>
<li><a class="previewlink" href="http://www.maierhofer.de/BackgroundCanvas.htm">jQuery BackgroundCanvas</a></li>
<li><a class="previewlink" href="http://www.atblabs.com/jquery.corners.html">jQuery Corners</a></li>
<li><a class="previewlink" href="http://www.protocoder.com/web-design/css/css-multiple-backgrounds-background-layering-with-jquery.html">CSS Multiple Backgrounds</a></li>
</ul>
<p><strong>Fazit</strong></p>
<p>Die perfekte Lösung gibt es noch nicht.</p>
<p>Grundsätzliche bevorzuge ich, soweit es möglich ist, die nativen CSS-Eigenschaften runde Rahmen um Elemente zu erzeugen.</p>
<p>Für IE und Opera bietet es sich, die Projekte, die mit Canvas arbeiten, genauer anzuschauen und eines davon zu nutzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/jquery/viele-wege-fuehren-zu-runden-ecken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS-Stylesheets zur Laufzeit mit Javascript erzeugen</title>
		<link>http://www.ajaxschmiede.de/javascript/css-stylesheets-zur-laufzeit-mit-javascript-erzeugen/</link>
		<comments>http://www.ajaxschmiede.de/javascript/css-stylesheets-zur-laufzeit-mit-javascript-erzeugen/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 17:50:14 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/?p=288</guid>
		<description><![CDATA[An dieser Stelle möchte ich eine relative unbekannte Möglichkeit zur Manipulation des Aussehens von Webseiten vorstellen, über die ich selbst erst vor wenigen Tagen gestolpert bin. Die Rede ist von DOM CSS. In den meisten Anwendungsfällen ändert man das Erscheinungsbild von Elementen, indem man diese direkt anspricht (zum Beispiel mit getElementById(id) ) und mittels style-Attribut [...]]]></description>
			<content:encoded><![CDATA[<p>An dieser Stelle möchte ich eine relative unbekannte Möglichkeit zur Manipulation des Aussehens von Webseiten vorstellen, über die ich selbst erst vor wenigen Tagen gestolpert bin. Die Rede ist von <a class="previewlink" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.html">DOM CSS</a>.</p>
<p>In den meisten Anwendungsfällen ändert man das Erscheinungsbild von Elementen, indem man diese direkt anspricht (zum Beispiel mit <em>getElementById(id)</em> ) und mittels <a class="previewlink" href="http://de.selfhtml.org/javascript/objekte/style.htm#style_eigenschaften"><em>style</em>-Attribut</a> beeinflusst.</p>
<p>Mit DOM CSS ist es möglich, solche Änderungen in CSS-Regeln wie <em>div.menu { color: black } </em>durchzuführen. Dazu bieten alle modernen Browser Funktionen zum Entfernen bestehender und zum Erstellen neuer CSS-Regeln.</p>
<p>Dabei halten sich die meisten Browser-Entwickler an die W3C-Vorgaben, nur Microsofts Internet Explorer &#8211; wie so oft &#8211; nicht. Dennoch bietet der IE ähnliche Funktionen.</p>
<p>Grundsätzlich adressiert man zuerst das Stylesheet, das man mit Javascript beeinflussen will. Dies kann man zum Beispiel über die <em>getElement</em>-Methoden tun.</p>
<p>Das <em>document</em>-Object stellt mit <em>document.styleSheets[index]</em> eine weitere Möglichkeit zum Ansprechen von Stylesheets zur Verfügung, womit sowohl alle internen <em>style</em>-Elemente als auch alle externen, mit <em>link</em> erzeugten CSS-Definitionen erreicht werden können.</p>
<p>In standardkonformen Browsern greift man mit <em>cssRules[index]</em> auf bestehende CSS-Regeln zu, der IE reagiert nur auf die MS-eigene Methode <em>rules[index]</em>.</p>
<p>Anschließend kann man mit dem <em>style</em>-Attribut wie gewohnt die Eigenschaftswerte verändern. Zum Beispiel:</p>
<pre class="brush: jscript;">
document.styleSheets[0].cssRules[0].style.backgroundColor = &quot;yellow&quot;;
</pre>
<p>Außerdem gibt es die Möglichkeit mittels der selectorText-Methode den Selector eines CSS-Regel auszulesen. Damit lässt eine Schleife konstruieren, die alle CSS-Regeln nach einem bestimmten Eintrag durchsucht, wie nachfolgend demonstriert:</p>
<pre class="brush: jscript;">
if( document.styleSheets[0].cssRules ) {
	var myrules = document.styleSheets[0].cssRules;
} else {
	if ( document.styleSheets[0].rules ) {
		var myrules = document.styleSheets[0].rules;
	}
}

if( myrules ) {
	for( i = 0; myrules[i]; i++ ){
		if( myrules[i].selectorText == &quot;p&quot;){
			myrule = myrules[i];
			break;
		}
	}
}
</pre>
<p>Um neue Regeln hinzuzufügen, verwendet man in standardkonformen Browsern die <em>insertRule[definition, index]</em>-Methode, für den Explorer heißt die Funktion <em>addRule[selector, style, index (optional)]</em>.</p>
<p>Vorhandene CSS-Definitionen löscht man mittels <em>deleteRule[index]</em> beziehungsweise <em>removeRule[index (optional)]</em> im IE.</p>
<p>Nachfolgend ist der komplette Code eines Mini-Beispiel zu finden. Dabei wird zuerst ein neues <em>style</em>-Elemente zur Laufzeit erstellt, in das HTML-Gerüst eingebettet und abschließend mittels DOM CSS eine Regel für das <em>body</em>-Element festgelegt, die Hintergrund- und Schriftfarbe verändert.</p>
<pre class="brush: jscript;">&lt;br /&gt;
if( document.styleSheets ) {
	var myStyle = document.createElement(&quot;style&quot;);
	myStyle.setAttribute( &quot;type&quot;, &quot;text/css&quot; );
	document.getElementsByTagName(&quot;head&quot;)[0].appendChild(myStyle);

	var styles = document.styleSheets.length;
	myStyle = document.styleSheets[styles-1];

	if( document.styleSheets[0].cssRules ) {
		myStyle.insertRule(&quot;body { color: red; background-color: black; }&quot;, 0);
	} else {
		if ( document.styleSheets[0].rules ) {
			myStyle.addRule(&quot;body&quot;, &quot;color: red; background-color: black;&quot;);
		}
	}
}
</pre>
<p>Ich favorisiere den Weg über das Hinzufügen eines neuen <em>style</em>-Elements anstatt dem Bearbeiten vorhandener Definitionen, da mir dies übersichtlicher und logischer vorkommt. Zumal &#8211; in den meisten Fällen &#8211; die zuletzt festgelegte CSS-Regel bei Überschneidungen zur Darstellung vom Browser genutzt wird.</p>
<p>Der Vorteil gegenüber dem traditionellen Ändern von <em>style</em>-Attributen über das direkte Ansprechen liegt vor allem in der Geschwindigkeit bei einer großen Anzahl von Elementen, die verändert werden sollen.</p>
<p>Ein Browser kann erheblich schneller 1.000 Elementen eine neue Schriftfarbe über eine CSS-Regel zuweisen als in einer Schleife eben diese Elemente direkt zu adressieren und jedem die neue Schriftfarbe zuzuweisen.</p>
<p>Interessant ist DOM CSS daher bei Javascript-Anwendungen, die neue HTML-Elemente (für runde Ecken beispielsweise) in den Code einbinden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/css-stylesheets-zur-laufzeit-mit-javascript-erzeugen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DLINK &#8211; mehr Farbe für deine Links</title>
		<link>http://www.ajaxschmiede.de/javascript/dlink-mehr-farbe-fuer-deine-links/</link>
		<comments>http://www.ajaxschmiede.de/javascript/dlink-mehr-farbe-fuer-deine-links/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 22:19:54 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/javascript/dlink-mehr-farbe-fuer-deine-links/</guid>
		<description><![CDATA[David King programmierte die kleine Javascript-Bibliothek DLINK, die es ermöglicht unterschiedliche Link-Typen unterschiedlich anzuzeigen. Dadurch ist es für einen Webseitenbesucher leichter zu erkennen, ob ein Verweis auf die selbe, eine externe, eine interne oder eine Subdomain-Seite verweist. Außerdem erkennt DLINK auch Verweise auf Emails und Subdomains. Um DLINK zu nutzen, bindet man zuerst die JS-Datei [...]]]></description>
			<content:encoded><![CDATA[<p>David King programmierte die kleine Javascript-Bibliothek <a href="http://oopstudios.com/dlink/index.html" class="previewlink">DLINK</a>, die es ermöglicht unterschiedliche Link-Typen unterschiedlich anzuzeigen.</p>
<p>Dadurch ist es für einen Webseitenbesucher leichter zu erkennen, ob ein Verweis auf die selbe, eine externe, eine interne oder eine Subdomain-Seite verweist. Außerdem erkennt DLINK auch Verweise auf Emails und Subdomains.</p>
<p>Um DLINK zu nutzen, bindet man zuerst die JS-Datei im Header ein, gruppiert die Links, die hervorgehoben werden sollen und weist der Gruppe die dlink-CSS-Klasse zu. Anschließend formatiert man noch die Link-Typen in CSS. Fertig.</p>
<p>Der folgende Quellcode soll das Vorgehen verdeutlichen:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://oopstudios.com/dlink/dlink.js&quot;&gt;&lt;/script&gt;

&lt;style type=&quot;text/css&quot;&gt;
a.internal  {color: #D47700;}
a.external  {color: #0074D4;}
a.subdomain {color: #D43500;}
a.email     {color: #00B235;}
&lt;/style&gt;

&lt;div class=&quot;dlink&quot;&gt;
your &lt;a href=&quot;#&quot;&gt;link filled&lt;/a&gt; content...
&lt;/div&gt;
</pre>
<p><a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/12/dlink.png" title="Links mit DLINK markiert" rel="lightbox[dlink]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/12/dlink.thumbnail.png" alt="Links mit DLINK markiert" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/dlink-mehr-farbe-fuer-deine-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Return of the Amiga-Raster-Bar</title>
		<link>http://www.ajaxschmiede.de/javascript/return-of-the-amiga-raster-bar/</link>
		<comments>http://www.ajaxschmiede.de/javascript/return-of-the-amiga-raster-bar/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 01:54:22 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/javascript/return-of-the-amiga-raster-bar/</guid>
		<description><![CDATA[Stefan Pettersson veröffentlichte in seinem Blog vor wenigen Tagen eine Raster-Bar-Demo, die an alte Amiga-Zeiten erinnert. Um seine Querbalken darzustellen, nutzte er einzig Canvas. Mit ein wenig JavaScript hauchte er diesen durch Animation Leben ein. Das Ergebnis ist vielleicht die alltagstaugliche Einsatzmöglichkeit für moderne Web2.0-Anwendungen, aber jedoch ein schicke Anregung für eigene Spielereien.]]></description>
			<content:encoded><![CDATA[<p>Stefan Pettersson veröffentlichte in seinem <a href="http://www.stpe.se/2008/12/javascript-raster-bar-effect/" class="previewlink">Blog</a> vor wenigen Tagen eine <a href="http://www.stpe.se/javascript/rasterbar.php">Raster-Bar-Demo</a>, die an alte Amiga-Zeiten erinnert.</p>
<p>Um seine Querbalken darzustellen, nutzte er einzig <a href="http://www.ajaxschmiede.de/category/canvas/">Canvas</a>. Mit ein wenig JavaScript hauchte er diesen durch Animation Leben ein.</p>
<p>Das Ergebnis ist vielleicht die alltagstaugliche Einsatzmöglichkeit für moderne Web2.0-Anwendungen, aber jedoch ein schicke Anregung für eigene Spielereien.</p>
<p><a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/12/rasterbar.png" title="Raster Bar mit Canvas und Javascript" rel="lightbox[rasterbar]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/12/rasterbar.thumbnail.png" alt="Raster Bar mit Canvas und Javascript" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/javascript/return-of-the-amiga-raster-bar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Runde Ecken ganz einfach mit Liquid Canvas</title>
		<link>http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/</link>
		<comments>http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 21:03:45 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/</guid>
		<description><![CDATA[Steffen Rusitschka veröffentliche vor wenigen Tagen die sehr gelungene Mini-Javascriptbibliothek Liquid Canvas zum Erzeugen perfekter runder Ecken an beliebigen HTML-Elementen. Die Rundungen werden zur Laufzeit über Canvas generiert und automatisch in den HTML-Code eingebettet. Der Einsatz von herkömmlichen Bildbearbeitungsprogrammen wie Gimp, Inkscape oder Photoshop entfällt völlig. Die Features im Einzelnen: automatisches Erzeugen von HTML-Canvas-Elementen, die [...]]]></description>
			<content:encoded><![CDATA[<p>Steffen Rusitschka veröffentliche vor wenigen Tagen die sehr gelungene Mini-Javascriptbibliothek <a href="http://www.ruzee.com/content/liquid-canvas" class="previewlink">Liquid Canvas</a> zum Erzeugen perfekter runder Ecken an beliebigen HTML-Elementen.</p>
<p>Die Rundungen werden zur Laufzeit über <a href="http://www.ajaxschmiede.de/canvas/einfuehrung-in-canvas/">Canvas</a> generiert und automatisch in den HTML-Code eingebettet. Der Einsatz von herkömmlichen Bildbearbeitungsprogrammen wie Gimp, Inkscape oder Photoshop entfällt völlig.</p>
<p>Die Features im Einzelnen:</p>
<ul>
<li>automatisches Erzeugen von HTML-Canvas-Elementen, die sich der Größe des HTML-Elements anpassen</li>
<li>Canvas-Abstraktion &#8211; jedes HTML-Element erhält eine paint-Methode</li>
<li>Plugins zum Rendern können verwendet werden</li>
<li>etliche Plugins existieren bereits, eigene können ebenso eingebunden werden</li>
<li>vereinfachte Render-Sprache für Plugin basiertes Rendern</li>
<li>an CSS angelehnte Syntax der Render-Sprache für die plugin-Formatierung</li>
<li>nutzt nur HTML, Canvas, jQuery und exCanvas</li>
<li>funktioniert mit Firefox (2+), Internet Explorer (6+), Safari (3+), Chrome</li>
</ul>
<p><a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke1.png" title="runde Ecken mit Liquid Canvas - Beispiel 1" rel="lightbox[liquidcanvas]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke1.thumbnail.png" alt="runde Ecken mit Liquid Canvas - Beispiel 1" /></a> <a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke2.png" title="runde Ecken mit Liquid Canvas - Beispiel 2" rel="lightbox[liquidcanvas]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke2.thumbnail.png" alt="runde Ecken mit Liquid Canvas - Beispiel 2" /></a> <a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke3.png" title="runde Ecken mit Liquid Canvas - Beispiel 3" rel="lightbox[liquidcanvas]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke3.thumbnail.png" alt="runde Ecken mit Liquid Canvas - Beispiel 3" /></a> <a href="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke4.png" title="runde Ecken mit Liquid Canvas - Beispiel 4" rel="lightbox[liquidcanvas]"><img src="http://www.ajaxschmiede.de/wp-content/uploads/2008/11/rundeecke4.thumbnail.png" alt="runde Ecken mit Liquid Canvas - Beispiel 4" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxschmiede.de/jquery/runde-ecken-ganz-einfach-mit-liquid-canvas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
