Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

Beim Überfahren eines Links anderen Linktitel?





Frage

Moin, möchte folgendes basteln: Habe ein Menü mit schwarzen Text-Links. Wenn ich zum Beispiel über den Punkt "Home" fahre, soll er 1. in rot dargestellt werden (was man ja mit css machen kann) und 2. soll sich der Titel von "Home" in zum Beispiel "Test" verwandeln. Bei einem Klick darauf soll es in diesem Zustand bleiben, damit man erkennt wo man sich gerade befindet. Beim Klick auf einen anderen Link soll das gleiche geschehen und logischerweise muss der zuerst geklickte Link wieder in den Urzustand zurückgesetzt werden. Die Farbänderung kann ich machen und das klappt. Das was nicht klappt, ist 1. der Titelwechsel und 2. das "eingerastet bleiben" bis man auf einen anderen Link klickt. Ich bin mir nicht sicher, ob sich das mit css alleine bewerkstelligen lässt, es wäre auch kein Weltuntergang, wenn ich auf JavaScript zurückgreifen müsste. Müsste irgendwas mit onmouseover und onmouseout sein, oder? Wenn mir jemand einen anpassbaren Beispielcode nennen kann, wäre ich mehr als glücklich. Vielen dank an alle Helfer in diesem Forum.

Antwort 1 von rfb

erst einmal zum Link-Text ändern bei onmouseover:


<a ... onmouseover="this.firstChild.data=´TEST´" onmouseout="this.firstChild.data=´HOME´">HOME</a>


der Rest ist ein wenig komplizierter - vielleicht später

Antwort 2 von rfb

Nachfrage:
bleiben die Links stehen, d.h. befinden sie sich z.B. in einem Navi-Frame bzw. beziehen sie sich auf Anker auf derselben Seite - oder wird sowieso mit jedem Link die Seite und damit auch die Linkliste neu geladen?

Antwort 3 von Blender

Hallo rfb und ein großes Danke.

Zu Nummer 1: ich habe das mit dem firstChild einmal ausprobiert, es kam jedoch zu keinem Erfolg, obwohl JavaScript aktiviert war. Es bleibt nach wie vor, egal ob beim Überfahren der Maus oder nicht, der normale Linktext stehen.

Zu Nummer 2: Ich habe eine feste Seite die wärend des Besuches kein einziges mal refreshed wird. Der Inhalt wird nämlich in einem Iframe dargestellt und das Menü ist somit auch statisch, wird also nicht erneut geladen.

Helfen Dir diese Informationen weiter?

mfg.

Antwort 4 von rfb

OK - erst einmal zum onmouseover:
du musst auf die Reihenfolge der einfachen und doppelten Anführungszeichen achten und - wenn du den Code hier raus kopierst - die einfachen ersetzen durch die "richtigen" einfachen (die neben dem Ä auf der Tastatur), SN ersetzt die leider durch ein ähnliches Zeichen, das die Browser nicht mögen.

Antwort 5 von rfb

hier ein Beispiel auf Basis des iframe-beispiels von SelfHTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="de"> 
<head>
<style type="text/css"><!--
a { display:block; width:auto; height:auto; border:#000 outset thick;}
 a:link{color:#f0f;}
 a:visited{color:#ff0;}
 a:hover{color:#f00; border:inset thick; }
 a:active{color:#f00; border:inset thick;}
//-->
</style>
<script type="text/javascript"> 
<!-- 
var gelinkt="";

function geklickt(a) {
if (gelinkt!="") gelinkt.style.border="outset thick";
gelinkt=a;
a.style.border="inset thick";
return true;
}
//--> 
</script> 
<title>Seitentitel</title> 
</head> 
<body> 
<iframe src="startseite.htm" name="Fensterlein" width="500" height="400" marginheight="10" marginwidth="10" align="right">
...
</iframe>
<p>
<a href="willkommen.htm" target="Fensterlein" onclick="geklickt(this)"><b>andere Seite</b></a><br>
<a href="startseite.htm" target="Fensterlein" onclick="geklickt(this)"><b>erste Seite</b></a>
</p>
</body> 
</html>


wenn du andere/weitere CSS-Eigenschaften ändern willst, musst du entsprechend statt ....style.border die gewünschte Eigenschaft angeben.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: