Verhindern von Focus-Rahmen
In manchen Fällen macht es Sinn, beim Klick auf ein Element den durch die Fokussierung entstehenden Rahmen zu verhindern. Konkret ist das sinnvoll, wenn durch den Klick kein Laden einer neuen Seite eingeleitet wird, sondern lediglich über DHTML eine Änderung der bestehenden Seite ausgelöst wird (Klick auf einen Reiter etc.). Um dieses Verhalten möglichst generisch und browserkompatibel zu erzeugen, wurde von mir ein JavaScript geschrieben, welches diesen Effekt automatisch an alle Elemente mit einer bestimmten CSS-Klasse bindet. Über ein getElementsByClassname werden dabei zwei Events (onmousedown und onblur) an diese Elemente gebunden, welche beim Eintreten dieser Events eine CSS-Klasse 'blur' hinzufügen bzw. wieder entfernen. Diese CSS-Klasse wiederum verhindert mit der Eigenschaft outline: 0; den unerwünschten Focus-Rahmen.
Die Lösung hat den großen Vorteil, daß ein Fokussieren des Elements mittels Tastatur-Steuerung weiterhin einen in dem Fall notwendigen Rahmen darstellt. Zum Umgang mit den Events und CSS-Klassen habe ich die YUI von Yahoo! verwendet.
Archive
- Juli 2010 (2)
- Juni 2010 (3)
- Mai 2010 (9)
- April 2010 (8)
- März 2010 (13)
- Februar 2010 (10)
- Januar 2010 (11)
- Dezember 2009 (8)
- November 2009 (6)
- Oktober 2009 (10)
- September 2009 (9)
- August 2009 (12)
- Juli 2009 (16)
- Juni 2009 (17)
- Mai 2009 (8)
- April 2009 (12)
- März 2009 (8)
- Februar 2009 (10)
- Januar 2009 (9)
- Dezember 2008 (2)
- November 2008 (8)
- Oktober 2008 (13)
- September 2008 (3)
- August 2008 (5)
- Juli 2008 (9)
- Juni 2008 (5)
- Mai 2008 (5)
- April 2008 (7)
- März 2008 (2)
- Januar 2008 (3)
- Das Neueste ...
- Älteres ...
Trackbacks
Ich hatte vor einer ganzen Weile hier im Blog einen Vorschlag gemacht, wie sich mit Hilfe von JavaScript der Focus-Rahmen beim Klicken eines Elementes mit der Maus verhindern läßt. Gerade eben bin ich auf einen Artikel gestoßen, der eine viel simplere Lös
Aufgenommen: Okt 12, 21:39