benno: Mauszeiger verändern

Beitrag lesen

Hallo,

Ich hatte in selfhtml gelesen, dass es auch mit GIF oder JPG gehen soll, was es aber nicht tut, und an anderer Stelle eben, dass neben CUR und ANI auch ICO funktioniert.

Das steht zwar so in SelfHTML, ich kann das aber nicht nachvollziehen. Die CSS2 Specs hab ich mal kurz überflogen und da wird keine Typenbedingung genannt (http://www.w3.org/TR/REC-CSS2/ui.html#cursor-props). Wobei imho als Cursor-Files nur diejenigen in Betracht kommen sollten, welche heute schon als solche fungieren.
Aber es steht auch in SelfHTML, dass "Netscape 6.x und Internet Explorer 5.x interpretieren die Angabe url([Datei]) nicht.". Soviel dazu.

  1. Entweder der Mauszeiger verändert sich ohne Mausklick auf das Objekt (also eigentlich schon beim ONMOUSEOVER) in den entsprechenden Cursor und erst nach einem Click stimmt wieder alles

oder

  1. der mauszeiger findet beim zweiten ONMOUSEDOWN auf meinem Objekt die angegebene Datei nicht und lässt den Mauszeiger als üblichen Pfeil stehen...

Na klar, denn der "Maus-Bereich" des Div's ist so groß wie das Div selbst. Es wird beim Mousedown im Div ein Event erzeugt (cursor = irgendwas). Jetzt verläßt Du den Bereich mit gedrückter Maustaste, das "Div" empfängt dann nicht mehr das Event onmouseup. Es hat aber immer noch den definierten Cursor. Kommst Du nun mit der Maus wieder in den Div-Bereich, so greift der aktuell (onmousedown) gesetzte Cursor. Willst Du das Event verfolgen, so müßtest Du die Mouseevents "capturen" (Capture und Release). Wie das geht in einem HTML-Dokument geht? Keine Ahnung!

Was solltest Du tun:
1. Setze bei einem onmousedown den Cursor
2. Setze beim verlassen des Mauszeugers aus dem Div den Cursor zurück
3. Setze bei einem onmouseup den Cursor zurück
4. Achte auf die Unterstützung durch die Browser (CSS2)

Workaraound :
<html>
<head>
<script type="text/javascript">
<!--
function setCursor(obj, style)
{
  try
  {
    obj.style.cursor = style;
  }
  catch (error)
  {
  }
}
//-->
</script>
</head>
<body>

<div
  onmousedown="setCursor(this, 'http://irgendwo/mycursor.ico');"
  onmouseout="setCursor(this, 'auto');"
  onmouseup="setCursor(this, 'auto');"
  style="border:none;background-color:#EEEEFF;position:absolute;top:20px; left:2px; height=200px; width:360px;"
  >
  <a href="DayCalendar.htm" title="Termin">Termin</a>
</div>

</body>
</html>
<

gruß
benno