Ich habe eine Seite in einem Frameset. In dieser Seite soll ein Div neben dem Mauszeiger erscheinen. Leider gelingt mir das bisher nicht in allen Browsern. Beim IE geht es fogendermassen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type=text/javascript>
<!--
var Xpos = 0;
var Ypos = 0;
var Xscroll = 0;
var Yscroll = 0;
var fensterbreite = 500;
var fensterhoehe = 400;
function init() {
Fensterbreite();
Fensterhoehe();
Mauspos();
}
function Mauspos(){
document.onmousemove = MouseMotionHandlerIE
}
function MouseMotionHandlerIE() {
savePos(window.event.x, window.event.y, document.body.scrollLeft, document.body.scrollTop);
moveBox(Number(Xpos)+Number(Xscroll), Number(Ypos) + Number(Yscroll));
}
function savePos(Xposnew, Yposnew, Xscrollnew, Yscrollnew) {
Xpos = Xposnew;
Ypos = Yposnew;
Xscroll = Xscrollnew;
Yscroll = Yscrollnew;
}
function moveBox(x, y) {
if (x-document.body.scrollLeft+296<=fensterbreite) {
document.getElementById("ntcaw").style.left = x*1+16;
} else {
if (x-document.body.scrollLeft>=296) {
document.getElementById("ntcaw").style.left = x*1-296;
} else {
document.getElementById("ntcaw").style.left = document.body.scrollLeft;
}
}
if (y-document.body.scrollTop+316<=fensterhoehe) {
document.getElementById("ntcaw").style.top = y*1+16;
} else {
if (y-document.body.scrollTop>=316) {
document.getElementById("ntcaw").style.top = y*1-316;
} else {
document.getElementById("ntcaw").style.top = document.body.scrollTop;
}
}
}
function Fensterbreite() {
if (window.innerWidth) {fensterbreite=window.innerWidth};
if (document.body && document.body.offsetWidth) {fensterbreite=document.body.offsetWidth};
}
function Fensterhoehe() {
if (window.innerHeight) {fensterhoehe=window.innerHeight;}
else if (document.body && document.body.offsetHeight) {fensterhoehe=document.body.offsetHeight;}
}
//-->
</script>
</head>
<body onLoad="init()" onResize="init()">
<div id="ntcaw" style="position:absolute;">...</div>
Rest der Seite
</body></html>
Das funkioniert auch in Opera6 und Opera7. Leider nicht in Opera5. Auch für Netscape ab Version 6 und Mozilla habe ich einen Weg gefunden. Nur für Opera5 weiß ich nicht, wie ich es machen kann. Das Problem ist, dass bei Opera5 die Methoden document.body.scrollLeft und document.body.scrollTop "undefined" zurück geben.
Wer weß Rat?